Ich erhalte ein:BinaryFormatter deserialize gibt SerializationException
System.Runtime.Serialization.SerializationException: Kann nicht Assembly ‚MyNamespace, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null
finden
Beim Deserialisieren einiger Daten in einem anderen Programm als das Programm serialisierte ich es mit.
Nach einigem googeln habe ich herausgefunden, dass dies anscheinend nur mit einer gemeinsamen Baugruppe getan werden kann.
Allerdings ist meine Datenbank voll mit diesen serialisierten Objekten, und ich brauche ein Dienstprogramm, um sie herauszubekommen. Gibt es eine Möglichkeit, dieses Verhalten zu überschreiben und es genau die gleiche Klasse zu füttern und es deserialize zwingen?
Ich habe dieses Snippet bereits gefunden, aber ich verstehe nicht, wie und wo ich dieses verwenden/verwenden soll.
static constructor() {
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
}
static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) {
Assembly ayResult = null;
string sShortAssemblyName = args.Name.Split(',')[0];
Assembly[] ayAssemblies = AppDomain.CurrentDomain.GetAssemblies();
foreach (Assembly ayAssembly in ayAssemblies) {
if (sShortAssemblyName == ayAssembly.FullName.Split(',')[0]) {
ayResult = ayAssembly;
break;
}
}
return ayResult;
}
die ursprüngliche Montage Referenzierung in Ihrem Dienstprogramm App ist keine Option? –
@eric: einige sind nur noch nicht beantwortet ... also kann ich sie nicht akzeptieren. Aber ich werde sie erneut überprüfen, um zu sehen, ob neue Antworten/Kommentare hinzugefügt wurden – Toad
eine endgültige Lösung mit vollem Quellcode Beispiel? – Kiquenet