2016-12-07 1 views
2

Roslynを使用すると、属性のコンストラクタの値はどのように見えますか?私はどのようになりRoslynを使用して属性コンストラクタ引数の値を見つける方法は?

public class ExampleAttribute : Attribute 
{ 
    private readonly Type _type; 

    public ExampleAttribute(Type type) 
    { 
     _type = type; 
    } 
} 

:だから属性で、次のクラスを与えられた:

[Example(typeof(ClassFromAnotherDll))] 
public class ExampleClass 
{ 
    public int JustANumber { get; set; } 
} 

そして(ソースは上記のものと同じ溶液中ではないでしょうが)ExampleAttributeはそうのようになります。 ClassFromAnotherDllタイプについての情報(プロパティ、コンストラクタなど)を取得しますか?

答えて

4

(意味モデルからの)任意のシンボルにGetAttributes()を呼び出して、適用されたすべての属性のリストを取得します。

次に、必要な属性のConstructorArgumentsを見てください。

引数がtypeofの式の場合、ValueINamedTypeSymbolになります。

関連する問題