使用Postsharp将方面应用于装配的风险

时间:2014-04-26 12:57:46

标签: c# postsharp

我想使用postsharp将方面应用于第三方程序集,主要用于记录此博客中描述的错误 http://programmersunlimited.wordpress.com/2011/07/27/applying-aspects-to-3rd-party-assemblies-using-postsharp/。 此功能没有记录,postharp也没有正式支持。我不确定它可能带来什么样的风险。 我知道风险取决于我的装配。 在采用这种方法之前,我需要考虑的一般风险是什么? 感谢

2 个答案:

答案 0 :(得分:0)

通过使用PostSharp的这个不受支持的功能,您可能会在将来的版本中删除它,或者在没有向后兼容性的情况下进行更改。另一个重要的风险是,如果遇到问题,那么你将无法从官方渠道获得帮助。

根据这些风险,您需要决定是否希望项目依赖于该功能。

如果您的主要目标是记录对引用的第三方程序集的调用,那么它也可以使用其他方法实现。您可以在自己的程序集中应用logging属性,并将属性AttributeTargetAssemblies设置为目标第三方程序集的名称。

[assembly:Log(AttributeTargetAssemblies="Some.Referenced.Assembly", AttributeTargetTypes="...", ...)]

使用这种方法,PostSharp不会修改目标程序集,而是修改从您自己的程序集到目标程序集的调用。

<强>更新 从PostSharp 4.3开始,官方支持将方面应用于现有程序集。您可以在文档中找到有关此功能的更多信息:http://doc.postsharp.net/command-line

答案 1 :(得分:0)

  

“在采用这种方法之前,我需要考虑的一般风险是什么?”

使用PostSharp的另一个风险/烦恼是它们经常更新。

一个例子......

  • 您有一个包含多个项目的解决方案
  • 您将当前的PS nuget包裹应用于他们
  • Postsharp发布VS的更新并进行安装
  • 然后,您必须将PostSharp包含在解决方案中的现有项目或新项目中(PostSharp向导会提示此更新)

新版本的post sharp应用于该项目,现在你有一些版本12的项目和一些版本13的postharp。当您进行部署时,应用程序因版本不匹配而崩溃。