4

该类将被声明runtimevalues存储在Bag类似sessionor的对象中ViewBag。现在我想创建一个类的实例并使用 Bag data设置它的属性 。我知道我应该使用reflection,但我不知道是否有任何开箱即用的方法可以做这些事情,或者我应该创建一个

session["Foo"] = "foo";
session["Bar"] = "bar";

var instance = System.Activator.CreateInstance(Type.GetType(className));

instance = ? // how to set properties using session

该类在设计时不可用,应用程序不知道它的属性是什么。

4

1 回答 1

9
Type myType = Type.GetType(className);
var instance = System.Activator.CreateInstance(myType);
PropertyInfo[] properties = myType.GetProperties();

foreach (var property in properties)
{
    property.SetValue(instance, session[property.Name], null);
}
于 2012-10-24T14:11:42.767 回答