c# – 流式传输WCF的大量对象
发布时间:2020-12-15 21:43:08 所属栏目:百科 来源:网络整理
导读:我面临编写在IIS上运行的WCF服务器以供不同计算机上的其他平台使用.我需要将大量对象(序列化)返回给客户端.我需要它进行流式传输,因为从我的数据库中获取所有数据并根据cilent的要求进行排列是一个非常漫长的过程,因此我需要客户端能够在流出时对结果进行处
我面临编写在IIS上运行的WCF服务器以供不同计算机上的其他平台使用.我需要将大量对象(序列化)返回给客户端.我需要它进行流式传输,因为从我的数据库中获取所有数据并根据cilent的要求进行排列是一个非常漫长的过程,因此我需要客户端能够在流出时对结果进行处理.
在对主题进行一些阅读之后,似乎如果我使用带有transferMode StreamedResponse的WCF,我可以返回具有延迟执行的对象,这可能满足我的需求. 我读了以下文章: 并实现了与他们描述的类似的WCF.但是我改变了他们的代码: for(long i = 0; i < 1000; i++) //All the customers should be read from the database { yield return new Customer { FirstName = "Foo",LastName = "Bar",Address = "FooBar 123" }; } 至: for(long i = 0; i < 1000000; i++) //All the customers should be read from the database { yield return new Customer { FirstName = "Foo",Address = "FooBar 123" }; } 因此它会模拟大量数据. 解决方法
我看了一下链接中的代码.
看起来CreateMessage在服务器上运行,在服务器开始返回任何数据之前将整个结果放在变量消息中. Message message = Message.CreateMessage(MessageVersion.Soap11,"GetAllCustomers",new CustomBodyWriter(GetAllCustomersImpl())); return message; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |