Я получаю:
System.Runtime.Serialization.SerializationException: невозможно найти assembly 'myNameSpace, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = нуль
При попытке десериализации некоторых данных в другой программе, чем программа, я сериализую ее с помощью.
После некоторых поисковых запросов я выяснил, что, по-видимому, это можно сделать только с помощью общей сборки.
Однако моя база данных заполнена этими сериализованными объектами, и мне нужна программа-утилита, чтобы вытащить их. Есть ли способ переопределить это поведение и просто передать ему тот же самый класс и заставить его десериализовать?
Я уже нашел этот фрагмент, но я не понимаю, как и где я должен его использовать/использовать.
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;
}