静态 Aop 织入框架 BSF.Aop

码农软件 · 软件分类 · .NET开发工具 · 2019-11-08 21:56:56

软件介绍

.Net 免费开源,静态 Aop 织入(直接修改 IL 中间语言)框架,类似 PostSharp (收费); 实现前后 Aop 切面和 INotifyPropertyChanged 注入方式。

描述:

  • 项目结构扩展自 BSF 基础架构,但 dll 方面并不依赖 BSF.dll,可以独立开发使用。

  • 项目代码量少(也就几个类文件),核心功能插件化开发,便于第三方扩展,阅读,调试,一起来完善。

  •  .net Aop 静态织入相关的免费开源项目比较少或暂未听闻,故希望开源这块内容,成为同类型开源项目的起点和借鉴。

示例代码:

1) 前后 Aop 切面示例 (详细参考 BSF.Aop.Test 项目)

public class AroundAopTest
    {
        [MyAroundAop]
        [AttributeInfo(Des = "测试2")]
        public void Method(TempInfo info, out int b,int a=1)
        {
            a = 222;
            b = 3;
            System.Console.WriteLine("Hello world!"+a);
        }
    }
    public static class AroundAopTest2
    {
        [MyAroundAop][AttributeInfo(Des ="测试")]
        public static void Method2(TempInfo info, int a = 1)
        {
            a = 222;
            System.Console.WriteLine("Hello world!" + a);
        }
    }
    public class MyAroundAop : Aop.Attributes.Around.AroundAopAttribute
    {
        public MyAroundAop()
        {
        }
        public override void Before(AroundInfo info)
        {
            var att = info.Method.CustomAttributes.ToList()[0];
            info.Params["a"] = 55;
            System.Console.WriteLine("before" + info.Params["a"]);
        }
        public override void After(AroundInfo info)
        {
            System.Console.WriteLine("after"+ info.Params["a"]);
        }
    }
    public class TempInfo
    {
        public int T1 { get; set; }
    }
    public class AttributeInfo : System.Attribute
    {
        public string Des { get; set; }
    }

2) INotifyPropertyChanged 示例(暂未测试真正使用效果,详细参考 BSF.Aop.Test 项目 )

 [NotifyPropertyChangedAop]

public class User
    {
        public string Name { get; set; }
        public int Age { get; set; }
        [NoAop]
        public int B { get; set; }
    }

by 车江毅

本文地址:https://codercto.com/soft/d/18572.html

轻松学算法

轻松学算法

赵烨 / 电子工业出版社 / 2016-7 / 69.00元

《轻松学算法——互联网算法面试宝典》共分为12 个章节,首先介绍了一些基础的数据结构,以及常用的排序算法和查找算法;其次介绍了两个稍微复杂一些的数据结构——树和图,还介绍了每种数据结构和算法的适用场景,之后是一些在工作与面试中的实际应用,以字符串、数组、查找等为例介绍了一些常见的互联网面试题及分析思路,便于读者了解这些思路,顺利地通过互联网公司的面试;最后介绍了一些常见的算法思想,便于读者对今后遇......一起来看看 《轻松学算法》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具