[英]Get Enum from String
例:
class foo
{
byte val = 3;
string EnumName = "boo";
Enum boo : byte
{
coo = 1,
doo = 2,
hoo = 3
}
Enum boo2 : byte
{
eoo = 3,
goo = 8
}
}
我该如何做这样的事情:
Console.WriteLine((GetEnum(EnumName)value).ToString()); // GetEnum is not real
EnumName将每次更改。
预期产量:
当枚举名称为boo ==“ hoo”
当枚举名称为boo2 ==“ eoo”
编辑:我将使用此记录:
给boo2.goo的消息
给boo.coo的消息
给boo.doo的消息
使用(EnumType) Enum.Parse("boo", typeof(EnumType));
如果要基于字符串获取类型,则可以在整个应用程序域中搜索可用的类型,然后可以检查该类型是否为枚举以及名称是否适用。 选择正确的类型后,您应该可以获取所需的值/名称。 也许此解决方案有点像锤子,但我认为它适用于您的情况。 (我不知道您的应用程序的结构)。
var domain = AppDomain.CurrentDomain;
var assemblies = domain.GetAssemblies();
foreach(var assembly in assemblies)
{
foreach(Type t in assembly.GetTypes())
{
string name = t.Name; // or t. Fullname if you know it
// you can also check if the type is an Enum, etc...
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.