Create instance of unknown Enum with string value using reflection in C#

c#, enums, reflection

Solution

Use the `ToObject` method on the `Enum` class:

var enumValue = Enum.ToObject(type, value);

Or like the code you provided:

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

Problem

I have a problem working out how exactly to create an instance of an enum when at runtime i have the System.Type of the enum and have checked that the BaseType is System.Enum, my value is an int value matching an item in the mystery Enum. The code i have so far is just the logic described above as shown below. ``` if (Type.GetType(type) != null) { if (Type.GetType(type).BaseType.ToString() == "System.Enum") { return ???; } } ``` When working with Enums in the past i have always know at code time which enum i am trying to parse but in this scenario im confused and have had little luck articulating my question in a google friendly way... I would usually do something like ``` (SomeEnumType)int ``` but since i dont know the EnumType at code time how can i achieve the same thing?

Original source