【问题标题】:How to add extended information to a .Net Remoting call without adding new parameters on the calls?如何在不添加新参数的情况下向 .Net Remoting 调用添加扩展信息?
【发布时间】:2011-02-16 00:03:42
【问题描述】:

我正在使用现有的大型 .Net Remoting 服务。需要修改此服务,使对服务的所有调用都需要附加信息以允许服务正确处理调用。

我希望避免在每个现有函数上添加新参数,并且希望以一种保持接口不变且仍允许服务正确处理调用的方式将扩展信息从客户端传递到服务器.

【问题讨论】:

    标签: remoting .net-remoting


    【解决方案1】:

    这可以使用以下接口来完成: IClientChannelSink、IClientChannelSinkProvider、IServerChannelSink 和 IServerChannelSinkProvider

    使用这些接口,可以创建一个客户端接收器,它可以将新的全局信息作为头值添加到每个调用中,服务器接收器可以将该头值拉出,并将其存储以供逻辑代码使用。

    您可以在http://www.diranieh.com/NETRemoting/ExtendingNET.htm 找到这些的高级概述

    启用客户端接收器的客户端配置部分是:

    <system.runtime.remoting>
      <application>
          <channels>
                <channel ref="tcp" port="0" encryption="EncryptAndSign">
                  <clientProviders>
                      <provider 
                       type="Namespace.ClientSinkProvider, dll"/>
                  </clientProviders>
              </channel>
          </channels>
      </application>
    </system.runtime.remoting>
    

    启用服务器接收器的服务器配置部分是:

    <system.runtime.remoting>
          <application>
              <channels>
                   <channel ref="tcp" port="0" encryption="EncryptAndSign">
                             <serverProviders>
                                  <provider 
                                   type="Namespace.ServerSinkProvider, dll" />
                                  </serverProviders>
                  </channel>
              </channels>
          </application>
    </system.runtime.remoting>
    

    【讨论】:

      猜你喜欢
      • 2020-08-31
      • 2021-10-23
      • 1970-01-01
      • 1970-01-01
      • 2017-01-24
      • 2016-02-22
      • 2017-07-09
      • 1970-01-01
      • 2018-02-01
      相关资源
      最近更新 更多