2010-01-20 30 views
0

有写(例如,串)直接连接到输出流的方式,实施定期WCF接口这样当:WCF直接写入响应信道

[ServiceContract] 
public interface ISearchInterface 
{ 
    [OperationContract] 
    [FaultContract(typeof(Exception))] 
    SearchResponse SearchXML(SearchRequest req); 
} 

我想保存DE /序列化时间并直接发送序列化的字符串(它必须是相同的方法,因为当我没有序列化的cachestring时,我想通常用一些SQL语句“构建”序列化的对象......)

任何想法?类似于

Channel.Write(s); 

?? ??

回答

1

总之一句话:NO。

WCF是基于消息通信系统 - 有在任何时间在服务器和客户端之间NO直接的联系。客户端和服务器之间的所有内容都是序列化消息 - 您只能交换静态数据 - 没有“对象远程处理”功能或WCF中的任何类似功能。哎呀 - 客户和服务器之间的信息可以由我知道的鸽子发送。不,没有办法在绕过序列化的“直接在频道上”发回某些内容 - 服务器的响应必须被序列化成消息,并且该消息作为对客户端的响应被发回。

+0

我想你给我一个小错误......我想绕过序列化的过程,即WCF所做的事情,因为我已经自己对数据进行了序列化......看到了,这个想法是将序列化数据存储到缓存中memcache)..所以,而不是反序列化他们,让他们再次序列化的WCF,我想直接把它穿过(也许串行器超载是在这里选择的方法?) – David

+0

我不知道这样的事情。你可以在服务器端做某些事情来实现某种缓存 - 但我从来没有听说过绕过序列化过程的方法。 –