Ich habe zwei Klassen mit Eigentum Getter nurWie kann ich Reflektionen verwenden, um Eigenschaften mit fehlenden Sätzen zu ändern?
public class A
{
public A(string name)
{
Name = name;
}
public string Name { get; }
public string Value { get; set;}
public string Data { get; set;}
}
public class B
{
public B(string name)
{
Name = name;
}
public string Name { get; }
public string Value { get; set;}
}
Sie in Form unterschiedlich sind, aber einige der gleichen Eigenschaftsnamen und Typen teilen. Wie kann ich Werte kopieren, wenn sie nur Getter haben?
Dies ist ein typisches Szenario, wenn ich ein Objekt als Konstruktorparameter zum Extrahieren von Werten aus dem neuen Objekt sende. Dann muss ich die Werte eins nach dem anderen kopieren. Dies kann viel Code produzieren und ist schwer zu pflegen.
Kann dies vereinfacht werden? Gibt es eine Möglichkeit, Reflektionen zum Kopieren von Objekten zu verwenden, wenn das Ziel nur Getter-Eigenschaften hat?
Was ist der Punkt der Auto-Eigenschaften ohne sogar private Setter automatisch implementiert? Wie sollte ein solches Objekt ohne Reflektionsmagie verwendet werden? –
Es ist in der neuesten Version von C# erlaubt, aber es kann nur im Konstruktor festgelegt werden. Schreibgeschützt, wenn erstellt. – Frode
stimme zu, aber Sie setzen nur 'Name' im Konstruktor. Es gibt also keine ordinale Möglichkeit, 'Value' und' Data' einzurichten. –