使用C#中的反射创建具有字符串值的未知Enum实例

Jar*_*cha 11 c# reflection enums

我有一个问题是如何在运行时创建一个枚举实例,我有枚举的System.Type并检查过BaseType是System.Enum,我的值是一个匹配神秘项目的int值枚举.

到目前为止我的代码只是上面描述的逻辑,如下所示.

        if (Type.GetType(type) != null)
        {
            if (Type.GetType(type).BaseType.ToString() == "System.Enum")
            {
                return ???;
            }
        }
Run Code Online (Sandbox Code Playgroud)

在过去使用Enums时,我总是在代码时间知道我想要解析的枚举,但在这种情况下我很困惑,并且以谷歌友好的方式表达我的问题......我通常会做类似的事情

(SomeEnumType)int
Run Code Online (Sandbox Code Playgroud)

但由于我不知道代码时的EnumType如何才能实现同样的目的呢?

Dan*_*Dan 15

ToObjectEnum课堂上使用该方法:

var enumValue = Enum.ToObject(type, value);
Run Code Online (Sandbox Code Playgroud)

或者像您提供的代码:

if (Type.GetType(type) != null)
{
    var enumType = Type.GetType(type);
    if (enumType.IsEnum)
    {
        return Enum.ToObject(enumType, value);
    }
}
Run Code Online (Sandbox Code Playgroud)