如何使用Roslyn查找属性构造函数参数的值?

时间:2016-12-07 12:55:13

标签: c# roslyn

使用Roslyn,我如何找到属性构造函数的值?因此,给定以下具有属性的类:

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

ExampleAttribute看起来像是这样(虽然来源与上面的解决方案不同):

public class ExampleAttribute : Attribute
{
    private readonly Type _type;

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

我如何获取有关ClassFromAnotherDll类型的信息(例如属性,构造函数)?

1 个答案:

答案 0 :(得分:4)

对任何符号(来自语义模型)调用GetAttributes()以获取所有应用属性的列表。

然后查看所需属性的ConstructorArguments

如果参数是typeof表达式,则其Value将为INamedTypeSymbol