0

私は、オントロジーのアセンブリが使用されているセマンティックWebアプリケーションに取り組んでいます。OWLをアセンブリに変換するためにRowlexOWLGrinderを使用しました。

オントロジーには、.dllアセンブリ内のいくつかの定数を含むtpEnumクラスに変換された個人を持つクラスがいくつかあります。たとえば、Languageという名前のOWLクラスとEnglishという名前の個人は、英語の定数を含むLanguageという名前のクラスに変換されます。Language.Englishは文字列であり、オントロジーの個人に指定されたURIを含みます。

代替テキストhttp://img5.imageshack.us/img5/9308/73263054.jpg 代替テキストhttp://img5.imageshack.us/img5/2246/11461238.jpg

このコンテキストでは、列挙型クラス定数間を循環する方法を見つけることができません。たとえば、次のようなものを使用します。

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

    }

このコードは、Languageが列挙型ではないという例外をスローします。

誰かがこの問題で私を助けてくれるだろうかと思っていました。

4

1 に答える 1

3

エラーが示すように、それは実際の列挙型ではありません。

振り返りが必要なようです。

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

これは、タイプに他のパブリック静的フィールドがないことを前提としています。タイプなどでいつでもフィルタリングできます。

于 2009-06-02T10:32:07.253 に答える