문제

나는 온톨로지의 조립이 꿀벌을 사용하는 시맨틱 웹 응용 프로그램을 연구하고 있습니다. 올빼미를 어셈블리로 변환하기 위해 Rowlex Owlgrinder를 사용했습니다.

온톨로지에는 개인이있는 클래스가 있으며,이 클래스는 .dll 어셈블리의 일부 상수를 포함하는 TP 열거 클래스로 변환됩니다. 예를 들어 영어라는 개인이라는 언어라는 올빼미 클래스는 영어 상수를 포함하는 언어라는 클래스로 변환됩니다. Language.english는 온톨로지의 개인에게 지정된 URI를 포함하는 문자열입니다.

대체 텍스트 http://img5.imageshack.us/img5/9308/73263054.jpg Alt Text http://img5.imageshack.us/img5/2246/11461238.jpg

나는이 맥락에서 나는 열거 클래스 상수 사이를 순환하는 방법을 찾을 수 없다. 예를 들어 다음과 같은 것을 사용합니다.

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

    }

이 코드는 언어가 열거가 아니라는 예외를 던졌습니다.

이 문제에서 누군가가 나를 도울 것인지 궁금합니다.

도움이 되었습니까?

해결책

오류가 말했듯이, 그것은 실제 열거가 아닙니다.

반사가 필요한 것 같습니다.

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

그것은 유형에 다른 공공 정적 필드가 없다고 가정합니다. 항상 유형 등으로 필터링 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top