我有以下代码来迭代我的类的一些属性
IEnumerable<CodeProperty> properties = CodeParser.GetEntityProjectItem(this, EntityClassType.Entity).FileCodeModel.GetClassesByName(method.EntityPropertyClassName).First().GetIEnumerable<CodeProperty>().Where(property => property.Getter != null && property.Access == vsCMAccess.vsCMAccessPublic);
这一切都很好,我得到了我的属性,接下来我建立了一个带有属性名称和类型的自定义类,除了数组之外,这个也很好。
对于字符串属性我得到名称和“System.String”
表示字符串[]属性我得到名称和“”
如何使用CodeProperty获取数组类型
答案 0 :(得分:4)
我最终使用这种扩展方法让我再次工作
public static string GetFullName(this CodeTypeRef codeType)
{
string fullName;
if (codeType.TypeKind == vsCMTypeRef.vsCMTypeRefArray)
{
CodeTypeRef arrayType = codeType.ElementType;
fullName = arrayType.AsFullName + "[]";
}
else
{
fullName = codeType.AsFullName;
}
return fullName;
}