私は WCF restul サービスを持っており、ユーザーが必要な要求形式を選択できるようにしたいのですが、装飾があります
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Xml,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "getstreamurl?ch={ch}&format=xml")]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "getstreamurl?ch={ch}&format=json")]
まず、実行時に ResponseFormat を指定し、メソッドの引数としてフォーマットを取得する方法はありますか? 周りを読んでいるとそうは思いません...OK次のこと上記のコードは問題なく動作しますが、問題があり、デフォルトを指定できるようにしたいので、フォーマット引数が渡されない場合はデフォルトにしますが、私はそのように飾ります
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Xml,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "getstreamurl?ch={ch})]
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "getstreamurl?ch={ch}&format=json")]
XML がデフォルトである場合、ブラウザからサービス メソッドを呼び出そうとすると、次のように表示されます。
UriTemplateTable は、テンプレート 'getstreamurl?ch={ch}' と同等のパスを持つ複数のテンプレートをサポートしていませんが、クエリ文字列が異なる複数のテンプレートをサポートしていません。クエリ文字列はすべてリテラル値で明確にすることはできません。詳細については、UriTemplateTable のドキュメントを参照してください。
それらは明らかに区別できますが、WCFは引数までしか読み取っていないようです...何か提案はありますか?