我得到一個:的BinaryFormatter反序列化給SerializationException
System.Runtime.Serialization.SerializationException:找不到 集「myNameSpace對象,版本= 1.0.0.0,文化=中立, 公鑰=空
當試圖反序列化另一個程序中的一些數據而不是我序列化它的程序時。
一些谷歌搜索後,我發現顯然這隻能使用共享程序集來完成。
但是,我的數據庫充滿了這個序列化的對象,我需要一個實用程序來讓它們出來。有沒有辦法來覆蓋這種行爲,只是餵它完全相同的類,並強制它反序列化?
我已經找到了這個片段,但我不明白如何以及在哪裏放置/使用它。
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;
}
在實用的應用程序引用原始程序集是不是一種選擇? – 2010-01-22 19:58:05
@eric:有些只是沒有回答...所以我不能接受他們。但我會再次檢查它們,看看是否已添加新答案/評論 – Toad 2010-01-22 20:08:36
任何帶有完整源代碼示例的最終解決方案? – Kiquenet 2013-02-12 09:01:08