Ich habe einige Schwierigkeiten, virtuelle Proxys zu verstehen. Ich habe tonnenweise Artikel gelesen und mehrere Stunden damit verbracht, gute Informationen zu finden, aber ich habe noch nichts Umfassendes gefunden. Daher werde ich hier eine allgemeine Anfrage nach besseren Informationen stellen (entweder hier veröffentlicht oder einfach ein Link). Ich werde auch einige Details unten hinzufügen, um besser zu erklären, was genau es ist, ich will.
Ich habe mehrere Objekte und es gibt viele Verweise zwischen ihnen. Der Einfachheit halber werde ich ein Objekt (Node) mit einer einfachen Eltern-Kind-Beziehung verwenden. Wenn ich dieses Objekt aus der Datenbank ziehe, möchte ich Lazy-Loading implementieren. Nach dem, was ich gelesen habe, wird ein virtueller Proxy im Wesentlichen das gesamte Lazy-Loading für mich übernehmen, indem er die Schnittstelle (INode) referenziert und Datenelemente nach Bedarf abruft. (Hinweis: Ich habe nicht tatsächlich eine INode-Klasse, aber wenn ich das virtuelle Schlüsselwort auf meine Datenmitglieder setzen, ein Proxy schien verwendet werden]
Wenn ich Datenelemente in meinen Klassen virtuell mache, scheint es einen Proxy zu erstellen. Ist dies ein virtueller Proxy? Implementieren diese das "Lazy-Loading"?
Ich suchte nach Informationen über das virtuelle Schlüsselwort, aber die einzige Dokumentation, die ich finden konnte, war es auf Methoden zu verwenden, die für die Vererbung verwendet wird, so dass abgeleitete Klassen die Funktion überschreiben können, die nichts zu tun hat mit dem, was ich will (ich denke).
Dies ist meine aktuelle Node.cs
[DataContract(IsReference=true)]
public partial class Node
{
[DataMember]
public long ID { get; private set; }
[DataMember]
public virtual Node Parent { get; set; }
[DataMember]
public virtual ICollection<Node> Children { get; set; }
}
Im Grunde genommen bin ich an diesem Punkt sehr verwirrt und brauche einfach eine Anleitung zu diesem Thema oder sogar eine Online-Ressource, die ich suchen kann, da alle, die ich gefunden habe, weniger als hilfreich waren.
Vielen Dank im Voraus.