2010-07-30 5 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; 
     }