反序列化时命名管道数据丢失

时间:2019-01-02 13:31:12

标签: c# .net named-pipes

我将Unity应用程序嵌入WPF页面,并使用命名管道在父应用程序和子应用程序之间传递数据。但是,对于我要传递的变量之一,我正在经历数据丢失。

我正在序列化数据(在本例中为List<String> shelfNumAndStatus):

IFormatter f = new BinaryFormatter();
server = new NamedPipeServerStream("CENSORED", PipeDirection.InOut, 1);
f.Serialize(server, shelfNumAndStatus);

我正在以类似方式反序列化:

client = new NamedPipeClientStream(".", "CENSORED", PipeDirection.InOut, PipeOptions.None, TokenImpersonationLevel.None);
IFormatter f = new BinaryFormatter();
List<String> ShelfData = (List<String>) f.Deserialize(client);

但是,序列化之前的数据有326行,序列化之后的数据有276行。是否有办法确保整个数据都已序列化,并且都对它们进行了反序列化以防止这种情况发生?

0 个答案:

没有答案