• 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)
  • 相关阅读:
    pyroscope 参考使用
    pyroscope 很不错的基于golang 的火焰图分析工具
    dremio 14 版本发布&&新的官方文档页面
    sijms/go-ora 1.0 发布了,使用buffer提升了系统的性能
    开发一个cockroachdb 的cube.js 驱动
    dremio 配置文件
    cratedb 将完全开源
    jfrog 关闭开放 bintray&&jcenter&&gocenter&&chartcenter 服务
    dremio tar 模式安装
    dremio 部署系统要求
  • 原文地址:https://www.cnblogs.com/qgbo/p/11389996.html
Copyright © 2020-2023  润新知