Ich habe eine Klasse mit einer Eigenschaft Wert wie folgt aus:Wie MethodInfo.Invoke verwenden, um Eigenschaftswert festzulegen?
public class MyClass {
public property var Value { get; set; }
....
}
Ich möchte MethodInfo.Invoke() verwenden Eigenschaft Wert zu setzen. Hier sind ein paar Codes:
object o;
// use CodeDom to get instance of a dynamically built MyClass to o, codes omitted
Type type = o.GetType();
MethodInfo mi = type.GetProperty("Value");
mi.Invoke(o, new object[] {23}); // Set Value to 23?
Ich kann nicht sofort auf meine Arbeit VS zugreifen. Meine Frage ist, wie Value mit einem ganzzahligen Wert wie 23 festgelegt wird?
Verwenden PropertyInfo.SetValue, wie unten erwähnt. Wenn Sie jemals feststellen, dass Sie gezwungen sind, ein MethodInfo-Objekt zu verwenden, rufen Sie die "get" -Methode der Eigenschaft (PropertyInfo.GetGetMethod()) ab und rufen Sie sie wie oben auf. –