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)
  • 相关阅读:
    7.2.7 其他的MediaRecorder方法
    7.2.6 MediaRecorder示例
    7.2.5 MediaRecorder状态机
    【风马一族_代码英语】代码英语之一
    【风马一族_Android】Android 前端内容1
    【风马一族_Android】Android 前端内容
    ssm框架拦截器
    对象,字符串,集合判断
    保存Session、获取Session、移除Session
    Hello Quartz
  • 原文地址:https://www.cnblogs.com/qgbo/p/11389996.html
Copyright © 2011-2022 走看看