Klonen Angenommen, ein Objekt mit diesen EigenschaftenObjekt durch Reflexion mit speziellen Einschränkungen
public int? Prop1 { get; set; }
public string Prop2 { get; set; }
public EntityCollection<X> Prop3 { get; set; }
public EntityCollection<Y> Prop4 { get; set; }
public EntityCollection<Z> Prop5 { get; set; }
i prop1
und prop2
mit dieser Methode kopieren:
public static void SetProperties(PropertyInfo[] fromFields,
object fromRecord,
object toRecord)
{
PropertyInfo fromField;
if (fromFields == null)
{
return;
}
foreach (PropertyInfo t in fromFields)
{
fromField = t;
fromField.SetValue(toRecord,
fromField.GetValue(fromRecord, null),
null);
}
}
aber ich weiß nicht, wie jede Kopie von prop3
, prop4
und prop5
zu einem anderen Objekt!
Edit: ich sollte nichtSerialize
Objekt! Ich mache diese Arbeit, weil mein Objekt große Daten hat und mit diesem Trick kann ich einige Daten kopieren.
es ist lustig zu sagen, wenn ich Originalquelle dieses Problems sage! Ich verwende EF
als ORM
und verwende Datenobjekte in einem Silverlight
Clients über WCF
. Wenn ich List<Foo>
in WCF
sende, sendet es List<Foo>
und seine Beziehungsdaten !! und Kunden starben!
Ihr Punkt über die Verwendung von Serialisierung ist auf mich verloren; Wenn Sie ein großes Diagramm ("Big Data") klonen wollen, haben Sie 2 * ein großes Diagramm - die Serialisierung in der Mitte scheint irrelevant. –
@Marc Gravell: Kopieren Sie einfach eine Eigenschaft mit EntityCollection <> über Reflektion. –
rechts; Entweder möchten Sie einen tiefen Klon (in diesem Fall Serialize sollte funktionieren, und Sie werden doppelt so viele Daten haben), oder Sie wollen eine Kopie der Entitätssammlung (rufen Sie einfach 'SetValue' auf) - es ist immer noch nicht klar zu mir, wo das Problem liegt. –