0

属性の完全修飾名しかわかっていない場合、メソッドの任意の属性を検出する方法を知りたいと思っていました。

元:

[MyAttribute]
public void SomeMethod()
{
} 

型名 + アセンブリを含む文字列に基づいて、文字列で記述された属性がメソッドに含まれているかどうかを検出できますか?

検出をプラグ可能かつ動的にしたいので、属性アセンブリへの参照はありません。ユーザーは、自分で使用したい属性への参照を追加します。完全修飾名がある限り、任意のメソッドを検出するための汎用メソッドを実装しようとしています。

4

1 に答える 1

0

わかりました、次のようにして、指定された属性を持つすべてのメソッドを見つけることができます。

Type t;

t.GetMembers().Where(m => m.GetCustomAttributes(false).Any(a => a.GetType().Namespace == "Some.nameSpace" && a.GetType().Name == "AttributeName")).ToArray();
于 2013-06-15T22:59:23.677 に答える