postsharp - 是否可以选择 PostSharp 处理哪些项目而不是告诉它排除哪些项目?

标签 postsharp

我可以指定 SkipPostSharp 常量来确保项目从 PS 进程的项目列表中排除。但我想反过来做。我希望 PS 假设它不应该处理我没有明确告诉它的任何内容。

这可以实现吗?

最佳答案

项目被PostSharp自动处理需要满足三个条件:

  1. 已使用安装程序安装 PostSharp。
  2. 该项目引用(直接或间接)PostSharp.dll。
  3. MSBuild 属性 SkipPostSharp 与 true 不同,并且编译符号 SkipPostSharp 未定义。

第三个条件是当您通过检查 VS 项目属性中的选项禁用 PostSharp 时变为 false。

您可以通过默认设置 SkipPostSharp=True 属性来默认禁用 PostSharp。这可以通过在项目的父目录之一中创建一个名为 PostSharp.Custom.targets 的文件来实现,其中包含以下内容:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
     <SkipPostSharp Condition="'$(SkipPostSharp)'==''">True</SkipPostSharp>
  </PropertyGroup>
</Project>

然后,在每个实际需要 PostSharp 的项目中,您需要定义属性 SkipPostSharp=False。您必须使用文本编辑器来执行此操作,因为项目属性选项卡仅允许将属性设置为 True 或取消定义它。

关于postsharp - 是否可以选择 PostSharp 处理哪些项目而不是告诉它排除哪些项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9814609/

相关文章:

c# - Visual Studio 构建期间出现 PostSharp OutOfMemoryException

c# - 使用 PostSharp 在 c# 中的构造函数上应用方面

c# - PostSharp 和 CaSTLe 动态代理有什么区别?

architecture - 通过 AOP 或其他自动化方式重构讨厌的遗留系统?

c# - MonoDroid 中带有 AOP (PostSharp) 的 IoC

c# - 如何使用 PostSharp AOP 获取当前 NHibernate session 以使用 Transaction 属性?

vb.net - Postsharp 方面可以用在网站项目上吗?

c# - Postsharp OnException 方面未按预期工作

c# - 多个线程使用的 Post Sharp 属性中的唯一记录器

c# - 使用这种异步日志记录代码有什么缺点?