MrAdvice, .NET 方面 weaver ( 在NuGet软件包下构建任务)

分享于 

4分钟阅读

GitHub

  繁體 雙語
.NET aspect weaver (build task under NuGet package)
  • 源代码名称:MrAdvice
  • 源代码网址:http://www.github.com/ArxOne/MrAdvice
  • MrAdvice源代码文档
  • MrAdvice源代码下载
  • Git URL:
    git://www.github.com/ArxOne/MrAdvice.git
    Git Clone代码到本地:
    git clone http://www.github.com/ArxOne/MrAdvice
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/ArxOne/MrAdvice
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    先生

    摘要

    Advice先生是一个开放源码的( 免费的) ( 这仍然是更高级的,见 https://www.postsharp.net。) 替代品。
    它打算在构建时注入方面。 建议以属性的形式编写,并使用它们标记方法,使切入点成为一个良好的方向。
    更多关于维基百科方面的信息。

    Advice先生可以为以下组件编织程序集:

    • .NET 框架( 4及其上)/单声道
    • Silverlight ( 4 & 5 )
    • 通用 Windows 平台
    • .NET 标准 1.6

    Advice先生允许你:

    • 在程序集,类型,方法或者参数级别提供方法或者参数
    • 建议类型( 在程序集启动时)
    • 引入字段
    • 在编织时间( 在生成步骤期间) 时通知建议( 这是大的 ),这样你就可以按照建议重命名方法,添加属性等等。

    工作原理

    它可以作为一个NuGet软件包( https://www.nuget.org/packages/MrAdvice )。 还有一个在appveyor上进行测试的自动构建。 当前状态为 Build status

    哲学

    目前,MrAdvice不会给你带来任何方面的out-of-the-box。 这意味着你必须编写自己的方面( 不过你可以在下面的其他软件包中使用先生)。 通知)。
    所以我们进入下一章,这就是,。

    如何实现自己的方面

    简单地说

    下面是最小示例:

    
    
    
    
    public class MyProudAdvice : Attribute, IMethodAdvice
    
    
    {
    
    
     public void Advise(MethodAdviceContext context)
    
    
     {
    
    
     //do things you want here
    
    
     context.Proceed(); //this calls the original method
    
    
     //do other things here
    
    
     }
    
    
    }
    
    
    
    

    然后只需要用属性标记该方法,即,你的方面被注入 !

    
    
    
    
    [MyProudAdvice]
    
    
    public void MyProudMethod()
    
    
    {
    
    
    }
    
    
    
    

    详细信息

    可以通过设置属性,在程序集。类型或者方法级别插入方面:

    • 当在asembly级别注入一个方面时,所有类型的所有方法都将被编织。
    • 当切面在类型级注入时,它的所有方法都被编织。
    • 当然,如果方面注入了一个方法,则只编织方法。

    目前,Advice先生仍然有两种风格:

    • 使用dnlib的全新版本,在主分支中。 这是你可以贡献的分支,通过分支和提交请求请求。
    • 使用Fody和java的遗留版本仍然存在于 Fody分支中。 这里版本仍然存在于NuGet中,并且在 ID MrAdvice.Fody 下可用。 但是,它不再受支持,将来可能会消失。

    其他使用先生的项目。 提示

    NuGet软件包:

    杂项项目:

    • 蓝色矮人,一个隧道反审查的本地代理。

    联系人和链接


    项目公司是 Arx,一个法国公司备份软件解决方案的编辑。


    构建  asp  PAC  PACK  任务  Nuget  
    相关文章