2014-11-05 50 views
0

我发现,如果我转换一个对象的字节数组是这样的:WCF序列化和性能

MemoryStream memorystream = new MemoryStream(); 
BinaryFormatter bf = new BinaryFormatter(); 
bf.Serialize(memorystream, objectToSerialize); 
byte[] toSend = memorystream.ToArray(); 

,然后发送一个字节数组通过WCF(WsHttpBinding/NetTcpBinding),然后在序列化客户端也使用BinaryFormatter,与通过WCF发送对象相比,它花费的时间要少得多。

如何启用WCF将发送给它的任何对象转换为字节数组,然后才将其发送给客户端?

+0

据我了解,WCF转换与DataContractSerizalizer对象WCFMessage看看这个sample project,然后格式化(本文二进制)转换为二进制格式。我在寻找的是在对象通过DCS之前将其转换,因为DCS需要大量时间来序列化对象。 – 2014-11-05 14:06:05

+0

请注意,以这种方式进行序列化时,您可以获得性能,但会失去在其他平台或其他版本的对象中反序列化的能力(如果添加了字段,序列化将失败) – ShayD 2014-11-05 14:12:25

回答