zoukankan      html  css  js  c++  java
  • aspectcore 简单解析

    .netcore 下aspectcore  的使用

    动态代理:

    static void Main(string[] args)
            {
                Console.WriteLine("Hello World!");
    
                using (IProxyGenerator proxyGenerator = new ProxyGeneratorBuilder().Build())
                {
                    var p = proxyGenerator.CreateClassProxy<Test>();
                    p.myPrint();
    
                    var p3 = proxyGenerator.CreateClassProxy<Test2>();
                    p3.myPrint();
                }
                Console.Read();
                Console.WriteLine("Hello World!********************");
            }

    红色的p,类型是  AspectCore.DynamicGeneratedqgb.Test

    这个类型是动态产生的。

    ProxyGeneratorUtils类下的方法  private Type CreateClassProxyInternal(string name, Type serviceType, Type implType, Type[] additionalInterfaces, IAspectValidator aspectValidator)

    private Type CreateClassProxyInternal(string name, Type serviceType, Type implType, Type[] additionalInterfaces, IAspectValidator aspectValidator)
            {
                var interfaces = additionalInterfaces.Distinct().ToArray();
    
            //这个类可以被编译成一个 Type. 下面能动态生成构造函数,和方法。
    var typeDesc = TypeBuilderUtils.DefineType(_moduleBuilder, name, serviceType, implType, interfaces); typeDesc.Properties[typeof(IAspectValidator).Name] = aspectValidator; //define constructor ConstructorBuilderUtils.DefineClassProxyConstructors(serviceType, implType, typeDesc); //define methods MethodBuilderUtils.DefineClassProxyMethods(serviceType, implType, additionalInterfaces, typeDesc); PropertyBuilderUtils.DefineClassProxyProperties(serviceType, implType, additionalInterfaces, typeDesc); return typeDesc.Compile(); }
    气功波(18037675651)
  • 相关阅读:
    异常机制和File类
    《JAVA程序设计》_第五周学习总结
    20165214 第五周学习任务
    20165214 第四周学习任务
    20165214 第三周学习任务
    20165214 预备作业3 Linux安装及学习
    20165313 预备作业3 Linux安装及学习
    学习基础和C语言基础调查
    20165313 我期望的师生关系
    int *ptr=(int *)(&a+1)
  • 原文地址:https://www.cnblogs.com/qgbo/p/11389996.html
Copyright © 2011-2022 走看看