如何获取具有枚举类型名称和枚举选项名称的枚举值
How to get enum value having enum type name and enum option name
我有这个枚举:
public enum SomeEnum
{
None,
Half,
All
}
下面的方法体是怎样的,所以我可以得到值 1 有选项 "None" 和枚举名称 "SomeEnum" 存储为字符串:
string enumTypeName = "SomeEnum";
string enumPickedOptionName = "None";
方法:
public int GetEnumValue(string enumTypeName, string enumPickedOptionName){}
在枚举名称前使用 "Namespace" 试试这个:
private int GetEnumValue(string enumTypeName, string enumPickedOptionName)
{
int result = -1;
Type enumType;
try
{
enumType= Type.GetType(enumTypeName);
result = (int)Enum.Parse(enumType, enumPickedOptionName,true);
}
catch (Exception ex)
{
}
finally
{
}
return result;
}
int 值 = GetEnumValue("Namespace.SomeEnum", enumPickedOptionName);
我是这样解决问题的:
private int GetEnumValue(string assemblyName, string enumTypeName, string enumPickedOptionName)
{
int result = -1;
Assembly assembly = Assembly.Load(assemblyName);
Type enumType = assembly.GetTypes().Where(x => x.Name ==
enumTypeName).FirstOrDefault();
result = (int)Enum.Parse(enumType, enumPickedOptionName, true);
return result;
}
我有这个枚举:
public enum SomeEnum
{
None,
Half,
All
}
下面的方法体是怎样的,所以我可以得到值 1 有选项 "None" 和枚举名称 "SomeEnum" 存储为字符串:
string enumTypeName = "SomeEnum";
string enumPickedOptionName = "None";
方法:
public int GetEnumValue(string enumTypeName, string enumPickedOptionName){}
在枚举名称前使用 "Namespace" 试试这个:
private int GetEnumValue(string enumTypeName, string enumPickedOptionName)
{
int result = -1;
Type enumType;
try
{
enumType= Type.GetType(enumTypeName);
result = (int)Enum.Parse(enumType, enumPickedOptionName,true);
}
catch (Exception ex)
{
}
finally
{
}
return result;
}
int 值 = GetEnumValue("Namespace.SomeEnum", enumPickedOptionName);
我是这样解决问题的:
private int GetEnumValue(string assemblyName, string enumTypeName, string enumPickedOptionName)
{
int result = -1;
Assembly assembly = Assembly.Load(assemblyName);
Type enumType = assembly.GetTypes().Where(x => x.Name ==
enumTypeName).FirstOrDefault();
result = (int)Enum.Parse(enumType, enumPickedOptionName, true);
return result;
}