我正在编写Fody Addin,可以注入代码并向用户提供错误消息。我能够确定指令的顺序点,但是找不到找到CustomAttributes顺序点的方法。
我需要获取此信息,以便在错误应用属性的情况下为调试器提供一个提示,以在哪里找到错误的位置。
所以基本上我有这样的事情:
[MyAttribute]
public void Test()
{
}
现在,我想获取MyAttribute属性的SequencePoint。
**编辑:**当我被否决时(无任何原因),这里有一些其他信息。我可以像这样访问指令的顺序点:
public static SequencePoint GetSP(MethodDefinition method)
{
return method.Body.Instructions
.Where(instruction => instruction.SequencePoint != null)
.Select(instruction => instruction.SequencePoint)
.FirstOrDefault();
}
这对于指令来说很好用,但是当我访问属性时,我不确定如何获取序列点:
public static SequencePoint GetSP(MethodDefinition method)
{
var attribute = method.CustomAttributes.First();
// what to enter here to get SequencePoint of attribute?
}
最佳答案
这是不可能的。属性没有序列点。我建议您只使用第一个序列点作为方法
关于c# - 在Fody/Mono.Cecil中获取CustomAttribute的SequencePoint,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28417648/