如何从Roslyn C中的AttributeArgumentListSyntax获取(名称,类型)#

时间:2017-01-30 11:14:05

标签: c# roslyn

我想从AttributeArgumentListSyntax

获取(名称,类型)列表
    public static List<Tuple<string, string>> GetArguments(this AttributeSyntax node)
    {
        var args = node.ArgumentList.Arguments.ToList();
        if (args.Count > 0)
        {
            var list = new List<Tuple<string, string>>();
            foreach (var arg in args)
            {
                var name = ""; // ??????????????
                var type = ""; // ??????????????
                list.Add(new Tuple<string, string>(name, type));
            }
            return list;
        }
        return null;
    }

任何人都可以帮助我吗?

结果如下:

[Obsolete("A",true)]
public DateTime ModifiedDate { get; set; }


(A,string)
(true,bool)

1 个答案:

答案 0 :(得分:2)

您需要从CompilationProject获取SemanticModel。

完成后,可以调用GetSymbol()来获取传递的值的类型(可能与属性的构造函数参数的类型不同)。