代碼如下 [ServiceContract] //服務協定定義
using System.ServiceModel;
public interface IInterface1
{
[OperationContract] //要公開的服務方法
string Function1(int value);
}
在c#中,“[...]”這個叫做Attribute,一般翻譯為“特性”,而不是“屬性”(因為“屬性”已代表其他意思)
特性是一個繼承自System.Attribute類的類,其實特性和注釋(即“/* ... */”)類似,是用於描述程序集、類型、成員的“備注信息”,和注釋不同的是:注釋是給“人”看的,而特性是給“編譯器”看的,
舉例來說:[ServiceContract] 這個特性告訴編譯器,該類型(指IInterface1)是一個服務契約,
[OperationContract] 這個特性告訴編譯器,該成員(指Function1)是一個操作契約,這樣在編程的時候,用反射機制可以判斷出,哪些類型標記過服務契約,哪些成員標記過操作契約,在WCF中會找到這些做服務,
[OperationContract] 他這句會執行什么代碼馬??在WCF中,會找出所有標記OperationContract特性的成員作為服務