二进制序列化在多个类库中调用遇到的问题

crack7 2013-08-17 11:15:36
1.组件层(里面我提供了序列化的方法和对象的类)
2.核心层
3.代理层

2,3两个层都调用了1中的序列化方法,可却报错,说找不到程序集xx.
(如果我直接在web项目中调用1提供的方法是可以的,但是2类库中调用1,然后调用2就报错。
关于命名空间,改成一样,但不同程序集。也是报错的。

积分不够,所以只能发表在非技术论坛上面,希望大家帮我分析下。

    public class BinarySerialize
{
public static byte[] Serialize<T>(T obj)
{
IFormatter formatter = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
byte[] b;
formatter.Serialize(ms, obj);
ms.Position = 0;
b = new byte[ms.Length];
ms.Read(b, 0, b.Length);
ms.Close();
return b;
}
/// <summary>
/// 反序列化二进制代码
/// </summary>
/// <param name="byteArray"></param>
/// <returns></returns>
public static T Deserialize<T>(byte[] byteArray)
{
IFormatter formatter = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
ms.Write(byteArray, 0, byteArray.Length);
ms.Position = 0;
return (T)formatter.Deserialize(ms);
}
}
...全文
122 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
crack7 2013-08-18
  • 打赏
  • 举报
回复
解决了,不是问题,是我原来数据库里面存储的二进制是之前的其他dll中的类,后来移动了地方导致的。 无语啊,今天一下午都在研究什么问题。。。结果乌龙。
  • 打赏
  • 举报
回复
如果是一个团队使用json为内部标准,会感到巨大的“被解放”的感觉。这都得益于json的高度适配性。
  • 打赏
  • 举报
回复
嗯。如果可能,建议使用json序列化。 你可以看看“二进制、json、xml”三种序列化的性能对比。使用json的好处是效率比较接近于二进制,而又具有高度的灵活性。你的跨dll版本问题完全可以迎刃而解,不用浪费很多无谓的时间在“过分技术”的问题上。

7,765

社区成员

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

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