我正在试着为postsharp写一个CompileTimeValidate(MethodBase method)。问题是当冲突发生时,它只在错误列表中显示描述。“文件”和“行”列为空。
我能处理的唯一信息是该属性所应用到的方法的MethodBase实例。
有没有办法从MethodBase对象中获取源文件和行号的详细信息?
public override bool CompileTimeValidate(MethodBase method)
{
MessageSource.MessageSink.Write(new Message(SeverityType.Error, "CU0001",
"MyError", "MyAspectLibrary"));
return false;
}发布于 2009-07-30 16:54:49
不没有。MethodBase是.Net程序集的部分基础元数据的表示形式。源信息(包括文件和行信息)不存储在DLL中,因此无法通过反射API获得。文件和行信息实际上存储在PDB中,您需要通过那些与令牌匹配的API来查找文件/行信息。
https://stackoverflow.com/questions/1207882
复制相似问题