2010-07-30 43 views
1

我有下面的代碼,通過我的一些類的屬性來遍歷EnvDTE CodeProperty - 陣列的類型名是「」

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

數組類型

回答

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