我希望这是一个简单的问题。
我想创建一个服务集群来处理涉及任意数千个字段的动态报告。据我所知,我不能使用流作为来自可靠的演员或服务的返回类型。我唯一的选择是返回序列化字节数组或将结果写入别处并指示客户端查询该资源,或者我错过了什么?
由于
答案 0 :(得分:0)
这取决于您在服务中使用的通信堆栈。服务本身与通信协议无关。服务的实现可以插入任何通信堆栈:Web API,WCF,套接字,并不重要。
Reliable Actors是服务的特殊实现,作为服务实现,它指定了通信堆栈。在该通信堆栈中,请求/响应有效负载必须是可序列化的DataContract,因此您无法在那里返回流。
否则,如果您使用WCF与您的服务进行通信,那么您将受到WCF可以执行的操作的限制。
如果您正在使用服务远程处理(您的服务实现IService并且您使用ServiceProxy远程调用其上的方法),那么您无法返回服务方法的流。您需要返回DataContract可序列化的内容。
如果您在服务中使用Web API,则可以在控制器操作方法中获取HTTP响应流并将数据流传回,而无需为其分配字节缓冲区。
或者你可以实现自己的通信协议并做任何你想做的事。