zoukankan      html  css  js  c++  java
  • 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必须在客户端和服务端一致。

  • 相关阅读:
    说说毕业两年多的经历
    egret: if判断语句不能写在addEventListener监听事件外面吗?
    egret wing exml文件突然在设计和预览模式下不可见!
    egret:设置滚动视图、隐藏滚动条以及层级的问题
    egret:list网格布局
    egret 自动播放音乐问题:ios 自动播放音乐失效
    private static和public static的意义
    setTimeout()的第三个参数
    egret 学习之once()与addEventListener()
    egret 入门学习笔记之问题解决
  • 原文地址:https://www.cnblogs.com/lzhp/p/3501173.html
Copyright © 2011-2022 走看看