Vb.net 如何从字符串中获取枚举类型

Vb.net 如何从字符串中获取枚举类型,vb.net,enums,Vb.net,Enums,在VB.NET中,我循环遍历枚举名称列表(来自SQL表),以获取每个枚举对象的值。比如说, 枚举。颜色 枚举。大小 枚举。模式 枚举。测量单位 等等 我希望Type.GetType(enumName)返回枚举对象(即enumerations.color),但它不返回任何内容 那么,如何传递枚举名并获取枚举对象呢?在没有进行任何测试的情况下,我的第一个想法是,您需要确保您已完全限定了类型名,并且名称可能区分大小写。您实际想做什么?枚举与其他对象不同,您将很难获得可以类型转换到特定枚举中的通用枚举对

在VB.NET中,我循环遍历枚举名称列表(来自SQL表),以获取每个枚举对象的值。比如说,

枚举。颜色

枚举。大小

枚举。模式

枚举。测量单位

等等

我希望
Type.GetType(enumName)
返回枚举对象(即enumerations.color),但它不返回任何内容


那么,如何传递枚举名并获取枚举对象呢?

在没有进行任何测试的情况下,我的第一个想法是,您需要确保您已完全限定了类型名,并且名称可能区分大小写。您实际想做什么?枚举与其他对象不同,您将很难获得可以类型转换到特定枚举中的通用枚举对象。我对静态列表使用枚举,并引用表中的值,而不是描述。除了报告之外,这几乎适用于所有方面。在这种情况下,我需要与表中的值一起使用的文本。报告是从SQL表中绘制的。我可以为特定报表的枚举创建一个表,但这对希望使用最终用户报表设计器创建自定义报表的最终用户没有帮助。因此,我们的想法是将枚举复制到一个SQL表中,该表可以在SQL视图中用于报告。我已经检查了大小写,并尝试完全限定类型名。没有做任何测试,我的第一个想法是,您需要确保您已经完全限定了类型名,并且名称可能区分大小写。您实际上想做什么?枚举与其他对象不同,您将很难获得可以类型转换到特定枚举中的通用枚举对象。我对静态列表使用枚举,并引用表中的值,而不是描述。除了报告之外,这几乎适用于所有方面。在这种情况下,我需要与表中的值一起使用的文本。报告是从SQL表中绘制的。我可以为特定报表的枚举创建一个表,但这对希望使用最终用户报表设计器创建自定义报表的最终用户没有帮助。因此,我们的想法是将枚举复制到一个SQL表中,该表可以在SQL视图中用于报告。我已经检查了大小写,并尝试完全限定类型名。
Private Sub DoEnums() 
    Dim dt As DataTable = sqltodt("Select * from enums")
    For i As Integer = 0 To dt.Rows.Count - 1
        Dim enumName As String = "enumerations." & dt.Rows(i).Item("enumName")
        Dim dte As DataTable = EnumToTable(Type.GetType(enumName))
        'do work here
    Next i
End Sub