我想使用postsharp将方面应用于第三方程序集,主要用于记录此博客中描述的错误 http://programmersunlimited.wordpress.com/2011/07/27/applying-aspects-to-3rd-party-assemblies-using-postsharp/。 此功能没有记录,postharp也没有正式支持。我不确定它可能带来什么样的风险。 我知道风险取决于我的装配。 在采用这种方法之前,我需要考虑的一般风险是什么? 感谢
答案 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的另一个风险/烦恼是它们经常更新。
一个例子......
新版本的post sharp应用于该项目,现在你有一些版本12的项目和一些版本13的postharp。当您进行部署时,应用程序因版本不匹配而崩溃。