代码之家  ›  专栏  ›  技术社区  ›  Phill Duffy

EnvDTE CodeProperty-数组的类型名为“”

  •  1
  • Phill Duffy  · 技术社区  · 16 年前

    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”

    对于string[]属性,我得到名称和“”

    如何使用CodeProperty获取数组类型

    1 回复  |  直到 16 年前
        1
  •  4
  •   Phill Duffy    16 年前

    最后我用这个扩展方法让我重新工作

     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;
            } 
    
    推荐文章