Derializacja BinaryFormatter daje wyjątek SerializationException
Dostaję:
System.Runtime.Serialization.SerializationException: Nie można znaleźć złożenia 'myNameSpace, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null
Podczas próby deserializacji niektórych danych w innym programie niż program, w którym go serializowałem.
Po pewnym googlu dowiedziałem się, że najwyraźniej można to zrobić tylko za pomocą współdzielonego zespołu.
Jednak moja baza danych jest pełna tych serializowanych obiektów i potrzebuję programu narzędziowego, aby je wydostać. Czy istnieje sposób na zastąpienie tego zachowania i po prostu podanie tej samej klasy i wymuszenie deserializacji?
Znalazłem już ten fragment, ale nie rozumiem, jak i gdzie powinienem go umieścić / użyć.
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;
}