PostSharp:确定正在编织的组件的项目类型?

时间:2016-12-13 19:17:42

标签: .net postsharp

在编织时是否有一种很好的方法来识别目标组件的项目输出类型?我希望制作一个IAspectProvider,根据目标是否适用不同的方面:

  • ASP.NET项目(网站,Web应用程序)
  • Windows服务
  • 桌面/控制台应用程序
  • 班级图书馆

编辑:我已经接受了答案,因为它已经确定PostSharp中没有用于识别正在编织的项目类型的内置机制;它需要手动指定或以不同的方式获得。

1 个答案:

答案 0 :(得分:2)

一种可能性是通过MSBuild将此信息传递给PostSharp。例如,您可以将其添加到csproj:

<PostSharpProperties>$(PostSharpProperties);ProjectType=Console</PostSharpProperties>

在编译时,您可以通过这种方式阅读属性ProjectType

PostSharpEnvironment.CurrentProject.EvaluateExpression("{$ProjectType}")

文档:

这是将此信息传递给PostSharp的方法。另一个问题是如果您不想手动将其硬编码到项目文件中,如何获取此信息。