2011-10-25 8 views
2

私はポストは、私がRestfullサービスを使用する場合WCF Resfullサービスでメソッドをオーバーライドするにはどうすればよいですか?

[OperationContract(Name = "GetDataWithNumber")] 
public User GetName(int id) 

[OperationContract(Name = "GetDataWithString")] 
public User GetName(string email) 

この文句を言わない仕事を置くことを説明しました!

[OperationContract(Name = "GetDataWithNumber")] 
[WebGet(UriTemplate = "Service/GetName?id={id}", ResponseFormat = WebMessageFormat.Json)] 
public User GetName(int id) 

誰でもこれを解決できますか?

答えて

1

私はちょうど2つのメソッドを使用することをお勧めします:

[OperationContract(Name = "GetDataWithNumber")] 
public User GetNameFromId(int id) 

[OperationContract(Name = "GetDataWithString")] 
public User GetNameFromEmail(string email) 

これは混乱を避けるだけでなく、より明確になるであろう。 RESTサービスはテキストベースの表現から変換するため、明示的な性質は保守性の面で非常に有用です。

+0

ユーザーがIDまたは電子メールを私に送信できるので、同じ方法を使用したいと思います。 – HardCode

+1

@HardCode:文字列を受け取るメソッドを1つ作成し、そのメソッド内でIDか電子メールかどうかを判断する必要があります。つまり、2つを使用してAPIを明示的にする方が良いと思います。エンドユーザーにとっても、またあなたにとってもより明確です。 –

関連する問題