C# でカスタム属性を作成していますが、属性がメソッドとプロパティのどちらに適用されるかに基づいて、さまざまなことをしたいと考えています。最初はnew StackTrace().GetFrame(1).GetMethod()
、カスタム属性コンストラクターで、どのメソッドが属性コンストラクターを呼び出しているかを確認するつもりでしたが、今では何が得られるかわかりません。属性がプロパティに適用された場合はどうなりますか? そのプロパティのインスタンスをGetMethod()
返しますか? MethodBase
C#で属性が適用されたメンバーを取得する別の方法はありますか?
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Property,
AllowMultiple = true)]
public class MyCustomAttribute : Attribute
更新: わかりました、間違った質問をしている可能性があります。カスタム属性クラス内から、カスタム属性が適用されたメンバー (またはメンバーを含むクラス) を取得するにはどうすればよいですか? Aaronaughtは、自分の属性が適用されたクラス メンバーを見つけるためにスタックをたどらないことを提案しましたが、属性のコンストラクター内からこの情報を取得するにはどうすればよいでしょうか?