我正在使用 PostSharp 拦截对我不拥有的对象的方法调用,但我的方面代码似乎没有被调用。 Silverlight 领域的文档似乎很松散,所以我很感激你们能提供的任何帮助:)
我有一个看起来像的属性:
public class LogAttribute : OnMethodInvocationAspect
{
public override void OnInvocation(MethodInvocationEventArgs eventArgs)
{
// Logging code goes here...
}
}
我的 AssemblyInfo 中的一个条目如下所示:
[assembly: Log(AttributeTargetAssemblies = "System.Windows", AttributeTargetTypes = "System.Windows.Controls.*")]
所以,我对你的问题是......我错过了什么?匹配属性目标下的方法调用似乎不起作用。
最佳答案
对于当前版本的 PostSharp,这是不可能的。
PostSharp 通过在 CLR 加载之前转换程序集来工作。现在,为了做到这一点,必须发生两件事:
最新版本,1.5 CTP 3, removes the first of these two limitations ,但真正有问题的是第二个版本。然而,这是 a heavily requested feature ,所以请睁大眼睛:
运行时/第三方方面的问题
作者还概述了如果允许在运行时修改会发生的一些问题:
关于c# - 使用 PostSharp 拦截对 Silverlight 对象的调用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/97733/