いくつかのタイプの要求 (PUT/DELETE/POST/JSON/POX/SOAP) に対応する WCF Web サービスを作成しました。これを行うために、リクエスト タイプを定義する属性を使用して、リクエスト フレーバーごとに個別の操作を作成しました。したがって、「WordInfo()」という名前の操作がある場合、「WordInfo_POST」、「WordInfo_GETXML()」、「WordInfo_GETJSON()」などになります。
問題は、ユーザーがクライアント アプリケーションで WSDL を使用するときに、これらの追加メソッドをユーザーに表示したくないということです。言い換えれば、私はそれらをインテリセンスに表示させたくありません。これが私が話していることの例です:
[ServiceContract]
interface IWVLibrary
{
[OperationContract]
[WebGet(UriTemplate = "WordInfo/{Data}/{ApiKey}?format=xml", ResponseFormat = WebMessageFormat.Xml)]
[return: MessageParameter(Name = "WordInfo")]
WordInfoResult WordInfo_GETXML(string data, string ApiKey);
[OperationContract]
[WebGet(UriTemplate = "WordInfo/{Data}/{ApiKey}?format=json", ResponseFormat = WebMessageFormat.Json)]
[return: MessageParameter(Name = "WordInfo")]
WordInfoResult WordInfo_GETJSON(string Data, string ApiKey);
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "", BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
[return: MessageParameter(Name = "WordInfo")]
WordInfoResult WordInfo_POST(string Data, string ApiKey);
[OperationContract]
[WebInvoke(Method = "PUT", UriTemplate = "", BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
[return: MessageParameter(Name = "WordInfo")]
WordInfoResult WordInfo_PUT(string Name, string ApiKey);
[OperationContract]
[WebInvoke(Method = "DELETE", UriTemplate = "WordInfo/{Data}/{ApiKey}", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]
[return: MessageParameter(Name = "WordInfo")]
WordInfoResult WordInfo_DELETE(string Data, string ApiKey);
[OperationContract]
[WebInvoke(BodyStyle = WebMessageBodyStyle.Wrapped)]
WordInfoResult WordInfo(string Data, string ApiKey);
}
しかし、この例では、「WordInfo()」だけを公開したいと思います。
操作をプライベートにしようとしましたが、コンパイルされないか、リクエストのタイプを受け入れなくなります。
ありがとう!