WCF入门教程(三)属性标签

时间:2014-05-14 04:07:03   收藏:0   阅读:329

属性标签,成为定义协议的主要方式。先将最简单的标签进行简单介绍,以了解他们的功能以及使用规则。

服务协定标识,标识哪些接口是服务协定,哪些操作时服务协定的一部分,以及传输对象的定义。如果已经有所了解,请直接PASS。 

1、ServiceContract(服务协定)

全名:System.ServiceModel.ServiceContractAttribute

功能:指示接口或类在应用程序中定义服务协定。

简单一句话:标识此接口是否是服务协定,是否需要公开为服务。

详细:使用接口(或类)上的 ServiceContractAttribute 属性定义服务协定。然后使用一个或多个类(或接口)方法中的 OperationContractAttribute 属性定义协定的服务操作。实现服务协定后并将其与binding和 EndpointAddress 对象一起使用时,此服务协定将公开以供客户端使用。

使用规则:

案例:

bubuko.com,布布扣
bubuko.com,布布扣
    [ServiceContract(Namespace="http://wcf.yank.com",Name="Service1",ProtectionLevel=ProtectionLevel.EncryptAndSign)]
    public interface IService1
    {
        [OperationContract]
        string GetData(int value);

        [OperationContract]
        CompositeType GetDataUsingDataContract(CompositeType composite);

        // TODO: 在此添加您的服务操作
    }
bubuko.com,布布扣
bubuko.com,布布扣

深入了解:

http://msdn.microsoft.com/zh-cn/library/system.servicemodel.servicecontractattribute(v=vs.100).aspx

 

2、OperationContract(操作协定)

全名: System.ServiceModel.OperationContractAttribute

作用:指示方法定义一个操作,该操作是应用程序中服务协定的一部分。

简单一句话:标识哪些操作属于服务协定一部分。如果不设置该属性,使用者则看不到此方法。

OperationContractAttribute properties to control the structure of the operation and the values expressed in metadata: ‘ data-guid="6f10b34c0a41805af8589ed754b310d6">使用 OperationContractAttribute 属性控制该操作的结构以及以元数据表示的值:

ReplyAction property specifies the action of the reply message for the operation.‘ data-guid="2345a847f10bc78e42ca6b50aaa45c22">案例:

        [OperationContract]
        string GetData(int value);

如果需要深入了解,可以查看以下

http://msdn.microsoft.com/zh-cn/library/system.servicemodel.operationcontractattribute(v=vs.100).aspx

 

3、DataContract(数据协定)

 全名:System.Runtime.Serialization.DataContractAttribute

功能:指定该类型要定义或实现一个数据协定,并可由序列化程序(如 DataContractSerializer)进行序列化。若要使其类型可序列化,类型作者必须为其类型定义数据协定。

简单一句话:定义数据协定,用于数据传输。

案例:

bubuko.com,布布扣
bubuko.com,布布扣
    // 使用下面示例中说明的数据协定将复合类型添加到服务操作
    [DataContract]
    public class CompositeType
    {
        bool boolValue = true;
        string stringValue = "Hello ";

        [DataMember]
        public bool BoolValue
        {
            get { return boolValue; }
            set { boolValue = value; }
        }

        [DataMember]
        public string StringValue
        {
            get { return stringValue; }
            set { stringValue = value; }
        }
    }
bubuko.com,布布扣
bubuko.com,布布扣

 

序列化时,也应用到此标签,具体可见:

http://www.cnblogs.com/yank/p/3198082.html

深入了解:

http://msdn.microsoft.com/zh-cn/library/system.runtime.serialization.datacontractattribute(v=vs.100).aspx

 

4、DataMember(数据成员协定)

全名:  System.Runtime.Serialization.DataMemberAttribute

功能:指定该成员是数据协定的一部分并可由 DataContractSerializer 进行序列化。

简单一句话:标识数据协定的成员

案例:

        [DataMember]
        public bool BoolValue
        {
            get { return boolValue; }
            set { boolValue = value; }
        }

如需深入了解:

http://msdn.microsoft.com/zh-cn/library/system.runtime.serialization.datamemberattribute(v=vs.100).aspx

 

WCF入门教程(三)属性标签,布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!