Wenn ein Programm gerade ein Objekt deserialisiert hat (es ist nicht wirklich wichtig wie, aber einfach sagen, dass BinaryFormatter verwendet wurde).
Was ist ein gutes Design für die Neuinjektion der Abhängigkeiten dieses Objekts?
Gibt es dafür ein gemeinsames Muster?
Ich nehme an, ich müsste die Deserialize () -Methode umbrechen, um als eine Factory innerhalb des Containers zu fungieren.
Danke!
Sie sollten keine Objekte mit Abhängigkeiten serialisieren, die nicht selbst serialisiert werden können.
Teilen Sie es stattdessen in zwei Klassen ein: Extrahieren Sie die serialisierbaren Teile in eine separate Klasse .
Nach der Deserialisierung können Sie das resultierende Objekt einer Instanz der ursprünglichen Klasse (der mit Abhängigkeiten) zuordnen.
Ich würde die OnDeserialized Attribut, um auf eine Methode zu zeigen, die die Reinjektion durchführen würde.
Unity hat ein Konzept von " BuildUp ", in dem Sie die Abhängigkeiten erfüllen können eines vorhandenen Objekts. Ich weiß nicht, ob Autofac (was ich vermute, dass Sie von den Tags verwenden) ein Äquivalent hat.
Tags und Links c# dependency-injection ioc-container autofac