how to create an instance of class and set properties from a Bag object like session
-
14-07-2021 - |
Frage
the class will be declared in runtime
and values
are stored in a Bag
object like session
or ViewBag
. Now I want to create an instance of the class and set it's properties using Bag data . I know that I should use reflection
, but I don't know if there is any method out of box that does such things or I should create one ?
session["Foo"] = "foo";
session["Bar"] = "bar";
var instance = System.Activator.CreateInstance(Type.GetType(className));
instance = ? // how to set properties using session
the class is not available in design time and application has no idea what its properties are .
Lösung
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);
}
Andere Tipps
ThaT'S works perefectly, ssee up 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);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow