如何动态创建值类型并在.net中赋值

时间:2011-10-11 11:15:43

标签: reflection .net-3.5

我有:

  • 数据类型(所有类型都是值类型)为string(例如:'System.Boolean'
  • 数据值为string(例如:'true'

我必须得到:

  • 值类型实例
  • 此实例应该由该值初始化

我是从

开始的
object v = Activator.CreateInstance(System.Type.GetType('type as string', true, true),..);

我不知道如何将v初始化为值:如何将动态值转换为字符串到bool(或其他值类型)并将其分配给v?

谢谢。

1 个答案:

答案 0 :(得分:2)

您是否尝试过使用Convert.ChangeType

object v = Convert.ChangeType(text, Type.GetType(typeName));

这只适用于某些目标类型,但这对您来说已经足够了。

编辑:最终,您需要一组您想要支持的类型。您可能希望拥有某种Dictionary<Type, Func<string, object>>和一种能够掩盖如何处理更一般情况(如枚举)的方法。