zoukankan      html  css  js  c++  java
  • C# castle 拦截器

    拦接器

    public class AutoDesensitizationMethodInterceptor : IMethodInterceptor
        {
            public object Intercept(IMethodInvocation invocation, params object[] args)
            {
                MethodInfo methodInvocationTarget = invocation.MethodInvocationTarget;
                object obj = invocation.Proceed(args);
                return AttributeVerification.VerificationDesensitization<Object>(obj);
            }
        }
    View Code

    拦接器

    public class AutoDesensitizationInspector : IContributeComponentModelConstruction
        {
            /// <summary>
            ///
            /// </summary>
            /// <param name="kernel"></param>
            /// <param name="model"></param>
            // Token: 0x0600048E RID: 1166 RVA: 0x00010344 File Offset: 0x0000E544
            public void ProcessModel(IKernel kernel, ComponentModel model)
            {
                //ICacheFactory autoCacheManager = kernel[typeof(IAutoCacheManager)] as IAutoCacheManager;
                foreach (MethodInfo m in model.Implementation.GetMethods()){
                    if (m.IsDefined(typeof(DesensitizationMethodAttribute), true))
                    {
                        model.Interceptors.Add(new InterceptorReference(typeof(AutoDesensitizationMethodInterceptor)));
                    }
                }
            }
    View Code
    public class AutoDesensitizationFacility : AbstractFacility
        {
    
            protected override void Init()
            {
                base.Kernel.ComponentModelBuilder.AddContributor(new AutoDesensitizationInspector());
                base.Kernel.AddComponent("AutoDesensitization", typeof(AutoDesensitizationMethodInterceptor));
            }
        }
    View Code

    配置web.config

    <castle>
        <facilities>
          <facility id="AutoDesensitization" type="命名空间.AutoDesensitizationFacility, 程序集" />
        </facilities>
    </castle>
  • 相关阅读:
    发送邮件程序
    T-SQL存储过程、游标
    GPS经纬度换算成XY坐标
    开博了
    你应该知道的 50 个 Python 单行代码
    想提升java知识的同学请进
    adb工具包使用方法
    红米note3刷安卓原生
    hadoop 使用和javaAPI
    django学习——url的name
  • 原文地址:https://www.cnblogs.com/xiaoruilin/p/14791255.html
Copyright © 2011-2022 走看看