(高分)求助 反序列化错误 --无法找到程序集 Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

xiven 2010-10-22 03:52:20
反序列化时报错:无法找到程序集 XXX,Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
使用的是以二进制方式序列化对象:BinaryFormatter bf = new BinaryFormatter();

一个可序列化的类BasefrmSerializable,保存界面控件信息。

在 C#写的DLL,此类BasefrmSerializable和DLL是同一个程序集。 在DLL 通过调用此类序列化和反序列化界面控件。

现在错误情况为:
1,新建一个C#工程 引用此DLL 一切正常。

2,在其他语言(Dephi)中 调用此DLL(以COM组件形式),在反序列化时报错---无法找到程序集 XXX,Version=1.0.0.0, Culture=neutral, PublicKeyToken=null






...全文
4246 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
龍月 2010-10-25
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 xiven 的回复:]
问题解决, 大家可能是没注意我是把Dll发布成COM组件 ,而且是Active 方式 加载在IE里面。


解决方法,在加载的EXE 目录下添加此组件。 或者 把DLL 发布成全集程序集
[/Quote]
恭喜了,还贴出解决方法
xiven 2010-10-25
  • 打赏
  • 举报
回复
问题解决, 大家可能是没注意我是把Dll发布成COM组件 ,而且是Active 方式 加载在IE里面。


解决方法,在加载的EXE 目录下添加此组件。 或者 把DLL 发布成全集程序集
yiweidianzi 2010-10-23
  • 打赏
  • 举报
回复
全局程序集缓存(GAC)
xiven 2010-10-22
  • 打赏
  • 举报
回复

这里 使用序列化只是为了永久保存对象信息到文件,序列化和反序列化多是在同一个DLL中调用。


如果是 “ 序列化的类生成一个单独的类库。服务端和客户端分别添加引用 注意命名空间”
的问题,
不应该有: C#调用成功,Dephi调用就报错吧?

xiven 2010-10-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wuyq11 的回复:]
序列化的类生成一个单独的类库。服务端和客户端分别添加引用
注意命名空间
[/Quote]
问题是我现在是用Dephi 调用此组件啊, 把序列化类和组件放在同一个命名空间下了。
还是我这里不是用序列化传递对象,而是 保存对象, 序列化对象到本地文件,然后使用时反序列化对象
xiven 2010-10-22
  • 打赏
  • 举报
回复
谁能解释下: DLL 的接口 只接受 外部 传入的参数,其他逻辑全在DLL内部,

调用方只是传递参数,为什么C#调用成功,Dephi调用就报错?
wuyq11 2010-10-22
  • 打赏
  • 举报
回复
序列化的类生成一个单独的类库。服务端和客户端分别添加引用
注意命名空间
xiven 2010-10-22
  • 打赏
  • 举报
回复
重新引用过多次,应该不是引用不对的问题啊
xiven 2010-10-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ly_longyue 的回复:]
[/Quote]
对的,重新引用了
die_angle 2010-10-22
  • 打赏
  • 举报
回复
假设A a;序列化a
1. 将A所在的代码空间编译成一个程序集
2. 在序列化与反序列化的地方都引用这个程序集
3. 执行序列化与反序列化
xiven 2010-10-22
  • 打赏
  • 举报
回复
在其他语言(Dephi)中,序列化生成的文件,可以在C#工程中反序列化成功,可是就是在其他语言(Dephi)中反序列化报错?
龍月 2010-10-22
  • 打赏
  • 举报
回复
dll 路径 对不对
重新引用
重新注册

17,747

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧