2009-06-02 4 views
0

나는 온톨로지의 어셈블리를 사용하는 시맨틱 웹 응용 프로그램을 만들고 있습니다. OWL을 어셈블리로 변환하기 위해 Rowlex OWLGrinder를 사용했습니다.문제 순환 열거 형 클래스 값

온톨로지에는 .dll 어셈블리의 일부 상수를 포함하는 tp 열거 형 클래스로 변환되는 개인 클래스가 있습니다. 예를 들어, 영어라는 개인과 함께 언어라는 이름의 OWL 클래스는 영어 상수를 포함하는 언어라는 클래스로 변환됩니다. Language.English는 온톨로지에서 개인에 대해 지정된 URI를 포함하는 문자열입니다. alt text http://img5.imageshack.us/img5/2246/11461238.jpg

alt text http://img5.imageshack.us/img5/9308/73263054.jpg

나는 내가 열거 클래스 상수 사이의주기에 방법을 찾을 수 없습니다 이러한 맥락. 예를 들어 다음과 같은 것을 사용하면 :

foreach (string item in Enum.GetNames(typeof(Language))) 
    { 

    } 

이 코드는 언어가 열거 형이 아니라는 예외를 throw합니다.

누구든지이 문제에서 도움이 될지 궁금합니다.

답변

3

오류가 말한 것처럼 실제 열거 형이 아닙니다.

그것은 당신이 반사를 필요 같은 소리 : 유형에 다른 공공 정적 필드가없는 가정 것

var fields = typeof(Language).GetFields(BindingFlags.Static 
             | BindingFlags.Public); 
foreach (string item in fields.Select(field => field.GetValue(null))) 
{ 
    // ... 
} 

. 형식 등으로 언제든지 필터링 할 수 있습니다.

+0

고맙습니다. 도움이되는 답변이 내 문제를 해결했습니다. – Ehsan