4
我正在實施.Net WCF服務,我想爲將來的版本應用命名空間。一位同事提到,我應該爲該接口應用幾個屬性兩個接口和具體的實現類,但我不清楚1)如果這是正確的,並且2)假設它是正確的,爲什麼它會在兩個地方應用這些屬性都很重要。我應該將服務屬性應用於接口,具體類還是兩者?
[ServiceContract]
[ServiceBehavior(Namespace = Constants.NameSpace1_0)]
[WebService(Namespace = Constants.NameSpace1_0, Name = "MyService1_0")]
[WebServiceBindingAttribute(ConformsTo = System.Web.Services.WsiProfiles.BasicProfile1_1, EmitConformanceClaims = true)]
public interface IMyService
{
[OperationContract]
[OperationContract(Name = "MyMethod", Action = Constants.NameSpace1_0 + "/IMyService/MyMethod")]
string MyMethod(string phrase);
}
public class MyServiceConcrete : IMyService
{
public string MyMethod(string phrase);
}
在本例中,我應該也適用的是被施加到接口到實現爲MyService接口的具體類(及其方法)的屬性?我是否應該在這兩個地方應用相同的屬性,或者只應用其中一個地方,爲什麼?謝謝。
根據msdn http://msdn.microsoft.com/en-us/library/system.servicemodel.servicecontractattribute.aspx 服務屬性可以應用於刪除一個接口或直接到一個類。 這裏的問題是相對於另一個的優缺點 例如,如果您的服務暴露多個合同,您必須將該屬性添加到每個接口以允許實施多個合同 – 2012-03-26 20:06:08
您無法應用ServiceBehavior屬性到接口,它只在類聲明時有效,按照.net 4.5 – Oscar 2016-12-16 08:06:12