扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:冷枫 来源:CSDN 2007年9月21日
关键字:
在本页阅读全文(共2页)
每个信道接收器(Channel Sink)或者实现 IClientChannelSink,或者实现 IServerChannelSink。客户端上的第一个信道接收器还必须实现 IMessageSink。它通常实现 IClientFormatterSink(它从 IMessageSink、IChannelSinkBase 和 IClientChannelSink 继承),并被称作格式化程序接收器(Formatter Sink),因为它将传入的消息转换为流(IMessage 对象)。
信道接收提供程序(Channel Sink Provider)-(实现 IClientChannelSinkProvider、IClientFormatterSinkProvider 或 IServerChannelSinkProvider 接口的对象)负责创建远程处理消息所流过的信道接收器(Channel Sink)。当远程类型被激活后,将从信道(Channel)中检索信道接收提供程序(Channel Sink Provider);然后在该接收提供程序上调用 CreateSink 方法以检索链上的接收器中的第一个Sink。
信道接收器(Channel Sink)还负责在客户端和服务器之间传输消息。信道接收器也链接在一起而形成一个链。当在接收提供程序上调用 CreateSink 方法时,该方法应该执行以下操作:
· 创建它自己的信道接收器。
· 在链中的下一个接收提供程序上调用 CreateSink。
· 确保下一个接收器和当前的接收器链接在一起。
· 将其接收器返回到调用方。
信道接收器负责将在它们上面进行的所有调用转发到链中的下一个接收器,并且应当提供用于存储对下一个接收器的引用的机制。
自定义信道接收器(Custom Channel Sinks)
自定义信道接收器被插入到格式化程序接收器(FormatterSink)和最后一个传输接收器(TransportSink)之间的对象链中。
传输接收器(TransportSink)
传输接收器是客户端上的链中最后一个接收器和服务器端上的链中第一个接收器。除了传输序列化的消息,传输接收器还负责将标头(Header)发送到服务器并在调用从服务器返回时检索标头和流。这些接收器内置在信道中,并且无法扩展。
简要总结.Net Remoting Infrastructure机制:
1,代理对象(Proxy)负责转发对Remote Objects的调用。
2,消息对象(Message Objects)用来调用Remote Methods的数据。
3,信道接收器(Sink/Channel Sink)用来远程方法调用(Remote method calls)处理消息。
4,信道接收提供程序(Channel Sink Provider)-一般用来将接收器(Sink)插入到信道接收链(Sink Chain)中。
5,格式化程序接收器FormatterSink-用来序列化/反序列化消息格式,进行传递。
6,传输接收器TransportSink-用来在进程或AppDomain之间传递序列化的消息。
Reference:
1, MSDN, .NET Framework 开发员指南, 接收器和接收链
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1793963
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者