Pergunta

Eu estou trabalhando em uma aplicação web semântica em que a montagem de uma ontologia é beeing usado. Eu costumava Rowlex OWLGrinder para converter OWL da montagem.

a ontologia existem algumas classes de indivíduos possuindo, que são as classes tp enum convertidos contendo algumas constantes em Dll conjuntos. Por exemplo, uma classe OWL chamado de idiomas com um indivíduo chamado Inglês, será convertido em uma classe chamada Língua contendo Inglês constante. O Language.English é uma string, contendo o URI especificado para o indivíduo na ontologia.

alt texto http://img5.imageshack.us/img5/9308/73263054 .jpg texto alt http://img5.imageshack.us/img5/2246/11461238.jpg

I Neste contexto não consigo encontrar uma maneira de ciclo entre constantes de classe enum. Por exemplo, utilizando algo como isto:

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

    }

este código lança uma exceção dizendo que a linguagem não é um Enum.

Eu queria saber se alguém poderia me ajudar neste problema.

Foi útil?

Solução

Como o erro diz, não é um verdadeiro enum.

Parece que você precisa reflexão:

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

Isso supondo que não há outros campos estáticos públicos no tipo. Você pode sempre filtro por tipo etc.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top