pis*_*hio 4 c# reflection attributes postsharp
根据我的另一个问题的建议,我转换了引用与PostSharp一起使用的代码:
属性:
[Serializable]
public sealed class InitAttribute : OnMethodBoundaryAspect
{
public override void OnEntry(MethodExecutionEventArgs eventArgs)
{
Console.Write("Works!");
}
}
static class Logger
{
public static string _severity;
public static void Init(string severity)
{
_severity = severity;
}
[Init()]
public static void p()
{
Console.WriteLine(_severity);
}
}
Run Code Online (Sandbox Code Playgroud)
尽管如此,我无法获得任何结果(控制台上的"Works!").PostSharp属性中的断点显示永远不会输入.
任何帮助?提前致谢.
Meh*_*ari 10
PostSharp处理已编译的IL二进制文件,并将您想要的操作添加到使用该属性修饰的方法体.该属性本身不会做任何事情.这就是CLR的工作方式.它只是将属性视为数据,而不是可执行代码.如果不在编译的代码上运行PostSharp,就不会有任何特殊之处.