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>
  • 相关阅读:
    UVa 11572
    Codeforces Round #500 (Div. 2) C.Photo of The Sky
    C++中的1LL
    Codeforces Round #500 (Div. 2) ABC
    UVA11054 Wine trading in Gergovia
    UVA 11134 Fabled Rooks (贪心)
    uva1152
    牛客网暑期ACM多校训练营(第一场)A Monotonic Matrix(数学公式+思维)
    牛客网暑期ACM多校训练营(第三场)A.PACM Team(多重01背包)
    普通平衡树
  • 原文地址:https://www.cnblogs.com/xiaoruilin/p/14791255.html
Copyright © 2011-2022 走看看