という名前の2つのメソッドがあります
[OperationContract]
UserAccount GetUser(Int32 id);
[OperationContract]
UserAccount GetUser(string username, string password);
私がそれらを構築しようとすると、同じ名前のメソッドをサービスに含めることはできないと言われましたか? それは...ですか。
という名前の2つのメソッドがあります
[OperationContract]
UserAccount GetUser(Int32 id);
[OperationContract]
UserAccount GetUser(string username, string password);
私がそれらを構築しようとすると、同じ名前のメソッドをサービスに含めることはできないと言われましたか? それは...ですか。
これはWSDLの制限です。C#/。NETと同じオーバーロードの概念をサポートしていないため、サービスのメソッド名は一意である必要があります。問題を解決するには2つのオプションがあります。
1つ目は、メソッドに異なる名前を使用することです。もう1つは、OperationContractsの1つにNameプロパティを次のように設定することです。
[OperationContract(Name="GetUserById")]
UserAccount GetUser(Int32 id);
[OperationContract]
UserAccount GetUser(string username, string password);
WSDL は、c# と同じオーバーロードの概念をサポートしていません。OperationContract で Name を使用してメソッドを指定できます
[OperationContract(Name="GetUserInt")]
UserAccount GetUser(Int32 id);
[OperationContract(Name="GetUserString")]
UserAccount GetUser(string username, string password);
これを試して:
- [OperationContract(Name= "GetUserWithID")]
UserAccount GetUser(Int32 id);
- [OperationContract(Name= "GetUserWithUserName")]
UserAccount GetUser(string username, string password);