• wcf消息契约


    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必须在客户端和服务端一致。

  • 相关阅读:
    PHP观察者模式
    php减少损耗的方法之一 缓存对象
    php迭代器模式
    数据库安全措施的改进依据------未实践
    mysql利用phpmyadmin导入数据出现#1044错误 的可能原因
    两列布局的基本思路
    less1.5中的减错误
    ie63像素bug原因及解决办法不使用hack
    镜像翻转二叉树
    判断一个整数是否是 2 的幂次方
  • 原文地址:https://www.cnblogs.com/lzhp/p/3501173.html
Copyright © 2020-2023  润新知