我正在尝试为postsharp写一个CompileTimeValidate(MethodBase method)
。问题是当发生违规时它只显示错误列表中的描述。 “文件”和“行”列为空。
我使用的唯一信息是应用该属性的方法的MethodBase
实例。
有没有办法从MethodBase
对象中获取源文件和行号详细信息?
public override bool CompileTimeValidate(MethodBase method)
{
MessageSource.MessageSink.Write(new Message(SeverityType.Error, "CU0001",
"MyError", "MyAspectLibrary"));
return false;
}
答案 0 :(得分:3)
不,没有。 MethodBase是.Net程序集的基础元数据的一部分的表示。包含文件和行信息的源信息不存储在DLL中,因此无法通过Reflection API获得。文件和行信息实际存储在PDB中,您需要通过匹配令牌的API来查找文件/行信息。