我需要从包含数据的字符串转换为使用反射传递的某种类型的对象。我有一个不可序列化的对象,其中包含任何类型的属性,我想将数据加载到该对象。
例如,该对象具有属性Color BgColor
。当我尝试将“红色”值设置为该属性时,我无法从字符串转换为颜色。我需要一般代码。
答案 0 :(得分:0)
答案 1 :(得分:0)
如果您需要做的只是将字符串转换为enum
中的值,则可以使用类似于以下内容的代码:
public static T ToEnum<T>(this string original)
{
Array values = Enum.GetValues(typeof(T));
foreach (T value in values)
{
if (value.ToString().ToUpperInvariant() == original.ToUpperInvariant())
return value;
}
throw new NotFoundException();
}
如果您需要转换其他类型,那么指定字符串的类型和格式可能会帮助人们更好地指导您。