我正在其中使用beeing本体的组件的语义web应用程序。我用Rowlex OWLGrinder转换OWL到组件上。

在本体有具有个人一些类,它们被转换TP含有的.dll组件一些常量枚举类。例如名为语言与名为英语个体中OWL类,将被转换为一个名为语言英语含有恒定类。所述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)))
    {

    }

此代码抛出异常说语言不是一个枚举。

我想知道是否有人能帮助我在这个问题上。

有帮助吗?

解决方案

由于错误说,它不是一个真正的枚举。

这听起来像您需要反射:

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