在其网站上的示例中,PostSharp有一个拦截主系统程序集中的调用的演示。我已经尝试过几次设置和复制对程序集的拦截调用我没有源代码但没有成功。
我的方法是简单地将汇编级属性放置在我想要检测的命名空间和方法的位置。这从来没有对我有用。
类似的东西:
[assembly:Trace(“MyCategory”,AttributeTargetTypes =“My.BusinessLayer。*”)]
我在这里遗漏了什么吗?如果我没有为其提供源,我是否可以不在程序集上对我的检测方面进行运行时注入?我以为我可以做运行时注射...
感谢。
答案 0 :(得分:5)
您可以通过指定:
来跟踪其他程序集的方法[assembly: Trace("MyCategory",
AttributeTargetAssemblies="xyz",
AttributeTargetTypes = "My.BusinessLayer.*")]
但是,外部组件不会被修改!只能修改从当前项目到外部装配的调用。
目前修改没有源代码的程序集并不容易。这是可能的,但被认为是一种高级方案,需要自定义编码。