wcf消息契约

本文深入探讨了消息契约的定义与实现,包括构造函数、属性及其在消息头和消息正文中的应用,并阐述了消息加密策略,特别是针对消息头和消息正文的不同保护级别。此外,还介绍了通过将消息契约的头和身子封装到一个类中来提高性能的方法,以及确保消息头和消息正文一致性的重要性。
摘要由CSDN通过智能技术生成

image

1.最多一个参数和一个返回值,返回值和参数的类型都是消息类型。

image

image

下面的代码为定义一个消息契约的实例

[MessageContract]
   public class MyMessage
   {
       private string operation;
       private double n1;
       private double n2;
       private double result;

       //Constructor - create an empty message.

       public MyMessage() {}

       //Constructor - create a message and populate its members.

       public MyMessage(double n1, double n2, string operation, double result)
       {
           this.n1 = n1;
           this.n2 = n2;
           this.operation = operation;
           this.result = result;
       }

       //Constructor - create a message from another message.

       public MyMessage(MyMessage message)
       {
           this.n1 = message.n1;
           this.n2 = message.n2;
           this.operation = message.operation;
           this.result = message.result;
       }

       [MessageHeader]
       public string Operation
       {
           get { return operation; }
           set { operation = value; }
       }

       [MessageBodyMember]
       public double N1
       {
           get { return n1; }
           set { n1 = value; }
       }

       [MessageBodyMember]
       public double N2
       {
           get { return n2; }
           set { n2 = value; }
       }

       [MessageBodyMember]
       public double Result
       {
           get { return result; }
           set { result = value; }
       }

       [MessageHeader(MustUnderstand=true)]
       public string str;

   }
消息契约中使用数组对应的消息格式。

image

image

下面例子是消息契约中使用自定义类型:

1.使用数据契约定义一个类型
2.在消息契约把数据契约作为消息契约的一部分(使用MessageHeader或MessageBodyMember)

 

关于消息加密

image

1、消息头自己决定自己

2、消息正文部分由最低保护级别,即下面的使用EncrypAndSign.

image

image

意上述主要是针对标头来说的

提高性能的方法:把消息契约的头和身子封装到一个类中,再对类使用消息契约。

image

改进后

image

header中的MustUnderstand必须在客户端和服务端一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值