【问题标题】:Why the Deserialize is not working?为什么反序列化不起作用?
【发布时间】:2013-04-28 02:57:06
【问题描述】:

我一直在使用 webServices 进行序列化对象实现,数据将由我在 webservices 中执行以下操作的桌面应用程序使用,它工作正常:

        [WebMethod]
        public byte[] getPartners()
        {
            string[] strFiles = Directory.GetFiles(GlobalStatic.rootAppData + @"\partners");

            List<DentalSock.main.partner> _partners = new List<DentalSock.main.partner>();
            foreach (String str in strFiles)
            {
                DentalSock.main.partner ptn = new DentalSock.main.partner();
                ptn.readPartner(str.Replace(GlobalStatic.rootAppData + @"\partners\", "").Replace(".xml", ""));
                _partners.Add(ptn);
            }

            BinaryFormatter bf = new BinaryFormatter();
            MemoryStream ms = new MemoryStream();
            bf.Serialize(ms, _partners);
            return ms.ToArray();                  
        }

然后当我回到客户端消费者时,我调用 web 服务以使用以下代码将对象反序列化为通用列表:

        ServiceReference1.partnerSoapClient p = new ServiceReference1.partnerSoapClient();
        byte[] byteArray = p.getPartners();
        MemoryStream stream = new MemoryStream(byteArray, 0, byteArray.Length);
        stream.Write(byteArray, 0, byteArray.Length);

        BinaryFormatter bf = new BinaryFormatter();

        pList = (List<partner>)bf.Deserialize(stream);

一切似乎都工作正常,但在最后一行调用 Deserialize 方法时没有任何反应,没有异常,当我尝试调试器时,当黄色突出显示的行到达上面代码的最后一行时,进入调试器模式只需停止并显示窗口形式! 请帮助解决这个问题,因为我不明白!

【问题讨论】:

    标签: c# object serialization


    【解决方案1】:

    代码现在运行得非常酷,我所做的是将所有代码放在后台工作程序的 DoWork 事件下,然后我在表单的 Load 事件上调用 RunWorkerAsync() 方法,一切都开始围绕它工作可能与主线程有关。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-11
      • 2012-08-26
      • 1970-01-01
      • 2020-10-16
      • 2012-09-18
      • 1970-01-01
      相关资源
      最近更新 更多