繁体   English   中英

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

[英]How to get (name,type) from AttributeArgumentListSyntax in Roslyn C#

我想从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)

您需要从CompilationProject获取SemanticModel。

一旦有了它,就可以调用GetSymbol()来获取传递的值的类型(该值可能与属性的构造函数参数的类型不同)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM