c# - Pass object at runtime using a string -
there loads of stuff on here reflection can't seem head around specific problem.
my classes:
public class box { public string name { get; set; } public int size { get; set; } } public class pallet { public box b1 = new box(); public box b2 = new box(); } the code creating object:
pallet p = new pallet(); p.b1.size = 5; p.b2.size = 10; the code display size of chosen box:
messagebox.show(p.b1.size.tostring()); i select box @ runtime using string. i.e.
string boxid = "b1"; object myobj = p. + boxid; messagebox.show(myobj.size.tostring()); obviously code not work. correct way value of chosen box in case 5?
since b1 , b2 fields, can them using getfield. on fieldinfo, call getvalue providing instance of pallet specific field for.
box box = (box)typeof(pallet).getfield(boxid).getvalue(pallet);
Comments
Post a Comment