繁体   English   中英

在Fody / Mono.Cecil中获取CustomAttribute的SequencePoint

[英]Get SequencePoint for CustomAttribute in Fody/Mono.Cecil

我正在编写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?
}

这是不可能的。 属性没有序列点。 我建议您只使用第一个序列点作为方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM