我一直在研究迷你ORM,它只是一个非常基本的转换器,我的应用程序中有一些枚举。在这个应用程序中考虑性别。我现在有这个片段:
public T ParseEnum<T>(string value)
{
return (T)Enum.Parse(typeof(T), value, true);
}
这很有效。然而,有一个问题。我需要硬编码我想要的枚举。如果我想动态切换到另一种类型,让我们说Continent(一个包含7个值的枚举),我有一个问题,因为我不知道ORM何时读取哪个变量。有解决方案吗?
我的意思摘要:
ParseEnum<Continent>(reader[idx].ToString());
我想转出&#34;大陆&#34;使用变量,例如property.PropertyType。
答案 0 :(得分:1)
我会将ParseEnum
作为非泛型方法,然后在代码中的任何地方进行类型转换,您可以将其类型转换为实际的枚举类型。请注意,enumType可以是完全限定的字符串,然后您可以使用System.Type
方法在运行时从该字符串创建System.Type.GetType
。
public object ParseEnum(Type enumType, string value)
{
return Enum.Parse(enumType, value, true);
}