我想从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)
答案 0 :(得分:2)
您需要从Compilation
或Project
获取SemanticModel。
完成后,可以调用GetSymbol()
来获取传递的值的类型(可能与属性的构造函数参数的类型不同)。