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

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

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

      WCF 常見邏輯和代碼 2.參數檢查 BeforeCall And AfterCall

      這段代碼可以直接在wcf4.0中跑...需要的人就拷貝走吧...

      我經常也會忘記代碼..做個備份

      雖然.net已經內置了一些類型用于檢查輸入參數 例如DataLengthAttribute

      不過畢竟功能有限,實現自己的參數檢查會更強大點.

      有些東西是內置無法實現的, 例如在輸入的時候檢查權限,Request還有記錄運行時間等

      以下是C#代碼(這里只是一種實現, IParameterInspector 還可以被應用到其他的地方 例如面對EndPoint和Attribute)

      View Code
          public class ValidationBehaviorSection : BehaviorExtensionElement, IServiceBehavior
      {

      private const string EnabledAttributeName = "enabled";

      [ConfigurationProperty(EnabledAttributeName, DefaultValue = true, IsRequired = false)]
      public bool Enabled
      {
      get { return (bool)base[EnabledAttributeName]; }
      set { base[EnabledAttributeName] = value; }
      }

      protected override object CreateBehavior()
      {
      return this;
      }

      public override Type BehaviorType
      {
      get
      {
      return GetType();
      }
      }
      private ValidationParameterInspector GetInstance()
      {
      return new ValidationParameterInspector();
      }

      void IServiceBehavior.AddBindingParameters(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase, Collection<ServiceEndpoint> endpoints, BindingParameterCollection bindingParameters)
      {
      }

      void IServiceBehavior.ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
      {
      if (!Enabled)
      {
      return;
      }
      ValidationParameterInspector inspector = GetInstance();
      foreach (ChannelDispatcher chDisp in serviceHostBase.ChannelDispatchers)
      {
      foreach (EndpointDispatcher epDisp in chDisp.Endpoints)
      {
      // epDisp.DispatchRuntime.MessageInspectors.Add(new ValidationParameterInspector());
      foreach (DispatchOperation op in epDisp.DispatchRuntime.Operations)
      op.ParameterInspectors.Add(inspector);
      }
      }
      }

      void IServiceBehavior.Validate(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
      {

      }
      }

      public class ValidationParameterInspector : IParameterInspector
      {
      private DateTime startTime;
      public void AfterCall(string operationName, object[] outputs, object returnValue, object correlationState)
      {

      }

      public object BeforeCall(string operationName, object[] inputs)
      {
      startTime = DateTime.Now;
      return null;
      }
      }


      下面是web.confg的配置

          <extensions>
      <behaviorExtensions>
      <add name="validator" type="{命名空間}.ValidationBehaviorSection, {dll名字}"/>
      </behaviorExtensions>
      </extensions>
      <behaviors>
      <serviceBehaviors>
      <behavior>
      <validator />
      </behavior>
      </serviceBehaviors>
      </behaviors>



      posted on 2011-10-07 10:33  聽說讀寫  閱讀(643)  評論(0)    收藏  舉報

      導航

      主站蜘蛛池模板: 亚洲国产成人无码电影| 亚洲va久久久噜噜噜久久狠狠| 亚洲精品一二三区在线看| 国产成人一区二区三区视频免费 | 亚洲欧美一区二区三区在线| 日韩精品一二三黄色一级| 亚洲av成人一区二区三区| 久久亚洲av成人无码软件| 国产jlzzjlzz视频免费看| 自拍视频亚洲精品在线| 国产日韩久久免费影院| 国产极品精品自在线不卡| 亚洲蜜臀av乱码久久| 麻豆精品一区二正一三区| 精品国精品国产自在久国产应用男 | 亚洲一区久久蜜臀av| 老色鬼在线精品视频在线观看| 亚洲区日韩精品中文字幕| 超碰成人人人做人人爽 | 亚洲中文字幕一区二区| 国产午夜福利在线观看播放| 人人爽人人爽人人片a免费| 少妇激情一区二区三区视频小说| 日韩人妖精品一区二区av| 国产精品人成视频免费播放| 99久久机热/这里只有精品| 亚洲十八禁一区二区三区| 亚洲欧美v国产一区二区| 国产精品视频露脸| 国内视频偷拍久久伊人网| 苍井空浴缸大战猛男120分钟| 国产老熟女伦老熟妇露脸| 国产精品国语对白露脸在线播放| 阜平县| 国产一区二区三区色噜噜| 日本中文一二区有码在线| 国产免费又黄又爽又色毛| 国产台湾黄色av一区二区| 99在线精品免费视频| 国产欧美日韩高清在线不卡| 日韩深夜福利视频在线观看|