string typeName = Request.QueryString [“TypeName”]; 类型t = Type.GetType(typeName); t.GetField( “SomeField”)的SetValue( “你好”);
在上面的代码中,我正在创建Type对象,它包含名称来自QueryString的自定义类型的信息。
现在问题是这个自定义类型有SomeField,我想为这个字段赋值但是我不知道哪个Type可以来自QueryString所以我不能说的任何特定类型?放置在SetValue方法中。
我该怎么办?
提前致谢。
答案 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");