通過WCF模擬重載方法的最佳做法是什麼?WCF「重載」方法的最佳做法
通常我會寫這樣
interface IInterface
{
MyType ReadMyType(int id);
IEnumerable<MyType> ReadMyType(String name);
IEnumerable<MyType> ReadMyType(String name, int maxResults);
}
的界面會是什麼這個接口的樣子後你轉換它WCF?
通過WCF模擬重載方法的最佳做法是什麼?WCF「重載」方法的最佳做法
通常我會寫這樣
interface IInterface
{
MyType ReadMyType(int id);
IEnumerable<MyType> ReadMyType(String name);
IEnumerable<MyType> ReadMyType(String name, int maxResults);
}
的界面會是什麼這個接口的樣子後你轉換它WCF?
如果你喜歡,你可以留下它。只需使用OperationContract屬性的name屬性即可。
[ServiceContract]
interface IInterface
{
MyType ReadMyType(int id);
[OperationContract(Name= "Foo")]
IEnumerable<MyType> ReadMyType(String name);
[OperationContract(Name= "Bar")]
IEnumerable<MyType> ReadMyType(String name, int maxResults);
}
由於mwilson已經說過 - WCF不允許方法在服務定義(WSDL)中具有相同的名稱。
如果在.NET中有兩個或多個具有相同名稱的(重載)方法,則需要通過在每個方法的[OperationContract]
屬性上指定Name=
屬性來爲WCF服務定義消除歧義。 (或不支持.NET) - 它是一種可互操作的標準,WSDL標準目前不支持方法重載 - 每種方法都必須通過名稱唯一標識。
可能的重複[爲什麼方法重載是不允許在WCF?](http://stackoverflow.com/questions/10276124/why-method-overloading-is-not-allowed-in-wcf) – 2015-02-02 00:52:09