Kann Reflection Eigenschaftswerte aus der String-Eingabe ändern?
Mithilfe von Reflection in C# können Sie auf private Mitglieder einer Klasse, einschließlich ihrer Eigenschaften, zugreifen . Dies ermöglicht Ihnen, die zugrunde liegenden Werte dieser Eigenschaften trotz ihrer Zugriffsbeschränkungen zu manipulieren.
Beispiel: Eigenschaftswerte reflektierend festlegen
Bedenken Sie den folgenden Code:
string propertyName = "first_name"; // Assume there's a property named first_name in the class
Um den Wert dieser Eigenschaft mithilfe von Reflektion festzulegen, befolgen Sie diese Schritte Schritte:
Erhalten Sie die Eigenschaftsinformationen mit Reflection:
Type propertyType = typeof(TargetClass); PropertyInfo propertyInfo = propertyType.GetProperty(propertyName, BindingFlags.NonPublic | BindingFlags.Instance);
Verwenden Sie die SetValue-Methode, um den Eigenschaftswert zu ändern:
object targetObject = new TargetClass(); propertyInfo.SetValue(targetObject, "New Value", null);
Hinweis: Im Beispiel Oben stellt TargetClass die Klasse dar, die die Eigenschaft „first_name“ enthält. Um auf private oder geschützte Eigenschaften zuzugreifen, passen Sie die BindingFlags in GetProperty() entsprechend an.
Das obige ist der detaillierte Inhalt vonKann C# Reflection private Eigenschaftswerte aus einem String ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!