GinoBambino
Lt. Commander
- Registriert
- Sep. 2012
- Beiträge
- 1.064
Hi.
Wir entwickeln zurzeit eine Software, die bestimmte Objekte binär serialisiert und anschließend deren Bit-Stream in eine Datenbank speichert. Damit unser Kunde seine alte Daten auf die neue Software migrieren kann, habe ich ein externes Tool entwickelt, das aus den alten Daten exakt dieselben Objekte produziert und anschließend in die Datenbank speichert.
Der Clou an der Sache ist, dass mein Tool (meine Tool-Assembly) exakt dieselben Assemblies verwendet, die auch in der echten Software benutzt werden. Sämtliche Objekte werden von der echten Assembly (DAL) erzeugt, d.h. die Objektdefinitionen sollten eigentlich dieselben sein.
Dennoch habe ich das merkwürdige Phänomen, dass unsere Software mit einigen Daten umgehen kann und mit anderen nicht. D.h. einige Objekte werden sogar problemlos wiederhergestellt, aber in anderen Fällen erhalte ich eine Fehlermeldung. Darin wird stets auf die Assembly verwiesen, mit der ich die Daten migriert habe (also die Assembly meines Migrations-Tools).
Meine Vermutung ist, dass Objekte nur dann bitgleich sind, wenn sie von ein und derselben Assembly erzeugt werden. Auch wenn ich keine neuen Klassen oder Interfaces eingeführt habe, sondern die originalen Ursprungs-Klassen benutze, scheinen die erzeugten Objekte dennoch eine eindeutige Signatur zu beinhalten, die einen Verweis auf die Assembly beinhalten, welche ausgeführt worden ist.
Kennt einer von euch zufällig das .NET Framework so gut, dass er mir darauf eine klare Antwort geben kann? Wäre echt super. Ich bin mit meinem Latein am Ende.
Wir entwickeln zurzeit eine Software, die bestimmte Objekte binär serialisiert und anschließend deren Bit-Stream in eine Datenbank speichert. Damit unser Kunde seine alte Daten auf die neue Software migrieren kann, habe ich ein externes Tool entwickelt, das aus den alten Daten exakt dieselben Objekte produziert und anschließend in die Datenbank speichert.
Der Clou an der Sache ist, dass mein Tool (meine Tool-Assembly) exakt dieselben Assemblies verwendet, die auch in der echten Software benutzt werden. Sämtliche Objekte werden von der echten Assembly (DAL) erzeugt, d.h. die Objektdefinitionen sollten eigentlich dieselben sein.
Dennoch habe ich das merkwürdige Phänomen, dass unsere Software mit einigen Daten umgehen kann und mit anderen nicht. D.h. einige Objekte werden sogar problemlos wiederhergestellt, aber in anderen Fällen erhalte ich eine Fehlermeldung. Darin wird stets auf die Assembly verwiesen, mit der ich die Daten migriert habe (also die Assembly meines Migrations-Tools).
Meine Vermutung ist, dass Objekte nur dann bitgleich sind, wenn sie von ein und derselben Assembly erzeugt werden. Auch wenn ich keine neuen Klassen oder Interfaces eingeführt habe, sondern die originalen Ursprungs-Klassen benutze, scheinen die erzeugten Objekte dennoch eine eindeutige Signatur zu beinhalten, die einen Verweis auf die Assembly beinhalten, welche ausgeführt worden ist.
Kennt einer von euch zufällig das .NET Framework so gut, dass er mir darauf eine klare Antwort geben kann? Wäre echt super. Ich bin mit meinem Latein am Ende.