質問
私は、オントロジーのアセンブリが使用beeingてされているセマンティックWebアプリケーションに取り組んでいます。私は、アセンブリにOWLを変換するためRowlex OWLGrinderを使用する。
は、オントロジーでの.dllアセンブリの一部の定数を含む列挙クラスtpは変換された個体を有するいくつかのクラスがあります。例えば、英語の名前の個人と言語という名前のOWLクラスは、英語の定数を含む言語というクラスに変換されます。 Language.Englishはオントロジーで個々に指定されたURIを含む文字列である。
http://img5.imageshack.us/img5/9308/73263054 .JPGする altテキスト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)))
{
// ...
}
これはタイプには他の公共の静的フィールドがないと仮定しています。あなたはいつも種類などによってフィルタリングすることができます。
所属していません StackOverflow