Abhängigkeiten eines frisch deserialisierten Objekts neu verknüpfen

8

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!

    
nbevans 20.04.2010, 13:47
quelle

3 Antworten

10

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.

    
Jeff Sternal 20.04.2010, 13:59
quelle
0

Ich würde die OnDeserialized Attribut, um auf eine Methode zu zeigen, die die Reinjektion durchführen würde.

    
Tom Cabanski 20.04.2010 13:52
quelle
0

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.

    
Mark Heath 20.04.2010 13:56
quelle