【发布时间】:2019-08-01 19:25:57
【问题描述】:
我正在尝试返回一个类的所有属性,以及使用 Roslyn 的每个属性的返回类型(不是反射..)
我已经接近了,但后来我遇到了一个返回字符串数组(或者可能是枚举?)的属性,我正在努力找出数组/集合中的类型......
public class msgClass // 较大类的一部分,并被引用为 Roslyn 文档
字符串 [] 行 {get; set;} //较大类属性中的属性
...
var DocumentsInProject = await roslynUtilities.GetMembers<BasePropertyDeclarationSyntax>(msgClass);
foreach (var itemClassProperty in DocumentsInProject)
{
var itemDeclaredSymbol = semanticModelOfDoc
.GetDeclaredSymbol(itemClassProperty) as IPropertySymbol;
if (itemDeclaredSymbol == null)
throw new Exception($"property: {itemClassProperty}");
var name = itemDeclaredSymbol.Name;
//what does it return?
string returnType = string.Empty;
if (itemDeclaredSymbol.Type.IsReferenceType)
{
var typeofKind = itemDeclaredSymbol.Type.TypeKind;
var typeincollection = itemDeclaredSymbol.Type.BaseType;
var containingType = itemDeclaredSymbol.Type.ContainingType.Name;
}
else
{
returnType = itemDeclaredSymbol.Type.Name;
}
}
如果不是很明显,这不是生产代码 - 我是 Roslyn 的新手,我正在破解,并且我正在构建一个用于审查项目中的类的 Visual Studio 加载项。
【问题讨论】:
标签: roslyn