2010-07-30 25 views
1

je le code suivant à parcourir certaines propriétés de ma classeEnvDTE CodeProperty - TypeName des tableaux est « »

IEnumerable<CodeProperty> properties = CodeParser.GetEntityProjectItem(this, EntityClassType.Entity).FileCodeModel.GetClassesByName(method.EntityPropertyClassName).First().GetIEnumerable<CodeProperty>().Where(property => property.Getter != null && property.Access == vsCMAccess.vsCMAccessPublic); 

Tout cela est bien, je reçois mes propriétés, à côté je suis construire une classe personnalisée avec le nom et les types des propriétés, ceci est encore valable à part des tableaux.

pour une chaîne établissementI obtenir le nom et « System.String »

pour une chaîne [] établissementI obtenir le nom et « »

Comment puis-je obtenir le type de tableau à l'aide CodeProperty

Répondre

4

J'ai fini par utiliser cette méthode d'extension pour me faire travailler à nouveau

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