2017-02-16 91 views
0

I 序列化从一个类中内部的不同类列表的数量。序列化功能正常工作,但反序列化功能无法正常工作。反序列化时无法在同一项目和DLL中找到程序集

错误: “无法找到程序集 'SEPL.AutoDCRBIM,版本= 1.0.0.0, 文化=中立,公钥=空'。”

这两个函数都运行在同一个项目中,而不是不同的项目。

+0

你使用的串行 –

+0

'使用(流流= File.Open(路径, FileMode.Create)) BinaryFormatter bin = new BinaryFormatter(); //bin.Binder = new AllowAllAssemblyVersionsDeserializationBinder(); bin.Serialize(stream,clsCheckModelErrors.bimdcr); }' –

回答

0

BinaryFormatter适用于类型信息。类型由其程序集定义。因此,“AssemblyA中的SomeType”与“AssemblyB中的SomeType”完全不同,即使它们碰巧是从相同的源文件编译的。

XMLSerializer的使用,而不是它是基于合同的串行那里,看起来很相似的类都很好,即使他们是在不同的组件

+0

我使用的不是类型A和类型B的相同DLL。 –

+0

函数的序列化和反序列化都使用与项目中类文件相同的程序集。 但没有运气。奇怪的是,serialize函数运行良好。它只是反序列化函数。 我甚至把这两个函数作为继续代码在一个函数中再次序列化工作,但反序列化选择不工作。 –

+0

你试过xmlserializer吗? –

相关问题