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>
  • 相关阅读:
    linux_一些shell命令分析记录
    linux shell if
    linux_磁盘挂载
    远程工具记录
    oracle_多字段统计(多count)
    tomcat_日志打印格式问题
    cgo -rpath指定动态库路径
    Ubuntu下两个gcc版本切换
    [转]Go与C语言的互操作
    [转]【流媒體】H264—MP4格式及在MP4文件中提取H264的SPS、PPS及码流
  • 原文地址:https://www.cnblogs.com/xiaoruilin/p/14791255.html
Copyright © 2011-2022 走看看