私は Fody アドインを作成しています。コードを挿入して、ユーザーにエラー メッセージを提供することができます。命令のシーケンス ポイントは特定できますが、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?
}