Question

Je travaille sur une application web sémantique dans lequel l'assemblage d'une ontologie est beeing utilisé. Je Rowlex OWLGrinder pour convertir OWL assemblage.

Dans l'ontologie il y a des classes ayant des individus, qui sont convertis tp Énumérer les classes contenant des constantes dans .dll assemblées. Par exemple, une classe OWL nommée Langue avec une personne dont le nom anglais, sera convertie en une classe nommée langue contenant constante anglais. Le Language.English est une chaîne contenant l'URI spécifié pour l'individu dans l'ontologie.

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

I ce contexte, je ne peux pas trouver un moyen pour faire défiler les constantes de classe enum. Par exemple en utilisant quelque chose comme ceci:

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

    }

ce code renvoie une exception en disant que la langue n'est pas un Enum.

Je me demandais si quelqu'un me aider à ce problème.

Était-ce utile?

La solution

Comme l'erreur dit, ce n'est pas un vrai ENUM.

On dirait que vous avez besoin de réflexion:

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

Cela suppose qu'il n'y a pas d'autres champs statiques publics dans le type. Vous pouvez toujours filtrer par type, etc.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top