WCF编码规范(三):服务契约

1.    总是将ServiceContract特性应用到接口上,而不是类上:

    //避免

   [ServiceContract]

    class MyService

   {

       [OperationContract]

       public voidMyMethod()

       {}

   }

    //正确

   [ServiceContract]

    interface IMyContract

   {

       [OperationContract]

       void MyMethod();

   }

    class MyService : IMyContract

   {

       public voidMyMethod()

       {}

   }

 

2.    服务契约要添加前缀I:

    [ServiceContract]

    interface IMyContract

    {

        [OperationContract]

        void MyMethod();

    }

 

3.    要避免准属性(Property-Like)操作:

    //避免

   [ServiceContract]

    interface IMyContract

   {

       [OperationContract]

       string GetName();

 

       [OperationContract]

       void SetName(stringname);

    }

说明:所谓的“准属性”,就是你这个服务操作可以用属性来代替,即用数据契约而非服务契约。

    [DataContract]

    public class MyContract

    {

        privatestring m_getName;

        [DataMember]

        public string GetName

        {

            get

            {

               return m_getName;

            }

            set

            {

                m_getName = value;

            }

        }

 }

 

4.    避免定义只有一个成员的契约。

 

5.    每个服务契约最好只定义3~5个成员。

 

6.    每个服务契约的成员不要超过20个。12个是可能的实际限定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值