Ich habe eine große Klasse mit vielen Eigenschaften (BigClass
). Ich muss eine neue Klasse (SmallClass
) mit nur einigen dieser Eigenschaften erstellen. Diese SmallClass
muss alle überlappenden Eigenschaften von BigClass
verwenden. Was ist der einfachste Weg, dies zu tun, ohne manuell alle Eigenschaften im Konstruktor von SmallClass
zuweisen wie ich weiter unten tun:Kopieren Sie einige Eigenschaften in neue Konstruktor
class BigClass
{
public int A { get; }
public int B { get; }
public int C { get; }
public int D { get; }
public int E { get; }
public BigClass(int a, int b, int c, int d, int e)
{
A = a;
B = b;
C = c;
D = d;
E = e;
}
}
class SmallClass
{
public int A { get; }
public int B { get; }
public int C { get; }
public SmallClass(BigClass bigClass)
{
// I don't want to do all this manually:
A = bigClass.A;
B = bigClass.B;
C = bigClass.C;
}
}
Müssen Sie es überhaupt tun? Könnte 'BigClass' zum Beispiel von' SmallClass' erben? Wenn nicht, und Sie tun es mit einer Schleife mit Reflektion usw., was würde auf lange Sicht passieren, wenn sowohl "BigClass" als auch "SmallClass" versehentlich den gleichen Eigenschaftennamen, aber für völlig unabhängige Zwecke verwendet werden? –
Bitte schauen Sie auf http://automapper.org/ – Lucian
Ich bin ein Fan von AutoMapper sowie –