如何设置值为动态类型字段

时间:2009-10-06 04:07:23

标签: c# types

string typeName = Request.QueryString [“TypeName”];     类型t = Type.GetType(typeName);     t.GetField( “SomeField”)的SetValue( “你好”);

在上面的代码中,我正在创建Type对象,它包含名称来自QueryString的自定义类型的信息。

现在问题是这个自定义类型有SomeField,我想为这个字段赋值但是我不知道哪个Type可以来自QueryString所以我不能说的任何特定类型?放置在SetValue方法中。

我该怎么办?

提前致谢。

1 个答案:

答案 0 :(得分:4)

这很可能是做某事的错误方法。如果你能给出一个更具体的例子来说明你想要完成的事情,我们或许可以提供一些替代方法来实现它。

话虽如此,你没有TypeName的实例,所以你显然无法取代“?”。您可以使用System.Activator创建该TypeName的新实例。

示例:

string typeName = Request.QueryString["TypeName"];
Type t = Type.GetType(typeName);
object instance = Activator.CreateInstance(t);
t.GetField("SomeField").SetValue(instance, "Hello");