<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      自定義消息編碼綁定實現

        擴展WCF 消息編碼綁定,需實現MessageEncodingBindingElement,MessageEncoder,MessageEncoderFactory.如果希望通過配置的方式應用我們實現的綁定,則還需要實現BindingElementExtensionElement。

        首先從消息編碼綁定實現開始;實現MessageEncoderBindingElement

       public abstract class CommonMessageEncodingBindingElement : MessageEncodingBindingElement
          {
              protected MessageEncodingBindingElement innerBindingElement;
      
              protected CommonMessageEncodingBindingElement() : this(new TextMessageEncodingBindingElement())
              {
              }
      
              protected CommonMessageEncodingBindingElement(
                  MessageEncodingBindingElement textMessageEncodingBindingElement)
              {
                  innerBindingElement = textMessageEncodingBindingElement;
              }
      
              public MessageEncodingBindingElement InnerBindingElement
              {
                  get { return innerBindingElement; }
                  set { innerBindingElement = value; }
              }
      
              public override MessageVersion MessageVersion
              {
                  get { return innerBindingElement.MessageVersion; }
                  set { innerBindingElement.MessageVersion = value; }
              }
      
              public override IChannelFactory<TChannel> BuildChannelFactory<TChannel>(BindingContext context)
              {
                  context.BindingParameters.Add(this);
                  return context.BuildInnerChannelFactory<TChannel>();
              }
      
      
              public override IChannelListener<TChannel> BuildChannelListener<TChannel>(BindingContext context)
              {
                  context.BindingParameters.Add(this);
                  return context.BuildInnerChannelListener<TChannel>();
              }
      
              public override bool CanBuildChannelFactory<TChannel>(BindingContext context)
              {
                  return innerBindingElement.CanBuildChannelFactory<TChannel>(context);
              }
          }
      

        其次;實現MessageEncoder。代碼如下;

      public abstract class CommonMessageEncoder:MessageEncoder
          {
              public MessageEncoder encoder;
      
              protected CommonMessageEncoder(MessageEncoder messageEncoder)
              {
                  encoder = messageEncoder;
              }
      
              public override string ContentType
              {
                  get { return encoder.ContentType; }
              }
      
              public override string MediaType
              {
                  get { return encoder.MediaType; }
              }
      
              public override MessageVersion MessageVersion
              {
                  get { return encoder.MessageVersion; }
              }
          }
      

        再次;實現ServerMessageEncoderFactory

       internal class ServerMessageEncoderFactory : MessageEncoderFactory
          {
              private readonly MessageEncoder encoder;
      
              public ServerMessageEncoderFactory(MessageEncoderFactory messageEncoderFactory)
              {
                  encoder = new ServerMessageEncoder(messageEncoderFactory.Encoder);
              }
      
              public override MessageEncoder Encoder
              {
                  get { return encoder; }
              }
      
              public override MessageVersion MessageVersion
              {
                  get { return encoder.MessageVersion; }
              }
          }

      最后通過配置應用到WCF 。配置實現開始;實現BindingElementExtensionElement.

      public class ServerBindingExtension : CommonBindingElementExtensionElement
          {
              public override Type BindingElementType
              {
                  get { return typeof (ServerMessageEncodingBindingElement); }
              }
      
              protected override BindingElement CreateBindingElement()
              {
                  ServerMessageEncodingBindingElement serverMessageEncodingBindingElement =
                      new ServerMessageEncodingBindingElement();
                  ApplyConfiguration(serverMessageEncodingBindingElement);
                  return serverMessageEncodingBindingElement;
              }
          }
      

        服務端配置;

      <system.serviceModel>
          <extensions>
            <bindingElementExtensions>
              <add name="myCustomerBinding" type="Hosting.ServerBindingExtension,Hosting"/>
            </bindingElementExtensions>
          </extensions>
          <bindings>
            <customBinding>
              <binding name="customerBinding">
                <myCustomerBinding/>
                <httpTransport/>
              </binding>
            </customBinding>
          </bindings>
          <services>
            <service name="Service.AddService">
              <endpoint address="http://127.0.0.1:8088/AddService" 
                        binding="customBinding" 
                        contract="Contract.IAdd" bindingConfiguration="customerBinding" ></endpoint>
            </service>
          </services>
        </system.serviceModel>

       

      客戶端配置;

      <system.serviceModel>
          <extensions>
            <bindingElementExtensions>
              <add name="clientBinding" type="Client.ClientBindingExtension,Client"/>
            </bindingElementExtensions>
            <behaviorExtensions>
              <add name="clientEndpoint" type="Client.ClientMessageInspector,Client"/>
            </behaviorExtensions>
          </extensions>
          <behaviors>
            <endpointBehaviors>
              <behavior>
                <clientEndpoint />
              </behavior>
            </endpointBehaviors>
          </behaviors>
          <bindings>
            <customBinding>
              <binding name="customerBinding">
                <clientBinding />
                <httpTransport></httpTransport>
              </binding>
            </customBinding>
          </bindings>
          <client>
            <endpoint address="http://127.0.0.1:8088/AddService"
                      binding="customBinding"
                      contract="Contract.IAdd"
                      name="customEndpoint" bindingConfiguration="customerBinding"></endpoint>
          </client>
        </system.serviceModel>

          服務端運行圖;

        客戶端調用效果;

      代碼;http://download.csdn.net/detail/tyb1222/6842555

      posted @ 2014-01-13 13:21  tyb1222  閱讀(752)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲欧美日韩在线码| 精品国产美女福到在线不卡| 亚洲欧洲日韩国内精品| 婷婷四虎东京热无码群交双飞视频| 亚洲精品综合第一国产综合| 国产一区二区日韩在线| 国产精品日韩av一区二区| 老鸭窝| av中文字幕国产精品| 亚洲精品国产摄像头| 国产偷国产偷亚洲清高APP| 精品国产迷系列在线观看| 日韩精品视频一二三四区| 亚洲成a人无码av波多野| 久久人妻无码一区二区| 蜜臀在线播放一区在线播放| 人妻无码不卡中文字幕系列| 2021亚洲va在线va天堂va国产| 国产一区在线播放无遮挡| 国产色无码专区在线观看| 久久96热在精品国产高清| 亚洲 卡通 欧美 制服 中文| 亚洲精品一区二区三区婷婷月| 亚洲天堂在线免费| 亚洲精品韩国一区二区| 92精品国产自产在线观看481页| 成人看的污污超级黄网站免费| 蜜桃久久精品成人无码av| 国产成人精品久久性色av| 人人人澡人人肉久久精品| 亚洲日本韩国欧美云霸高清| 久热天堂在线视频精品伊人| 国产目拍亚洲精品二区| 99在线精品国自产拍中文字幕| 国产av丝袜熟女一二三| 丝袜老师办公室里做好紧好爽| 午夜国产小视频| 麻城市| 粉嫩一区二区三区国产精品| 狂野欧美性猛交免费视频| 福利一区二区不卡国产|