EnvDTE CodeProperty - 数组的TypeName是“”

时间:2010-07-30 12:03:44

标签: visual-studio-2010 envdte

我有以下代码来迭代我的类的一些属性

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获取数组类型

1 个答案:

答案 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;
        }