.Net Remoting接口重载方法

时间:2017-07-07 18:11:10

标签: c# .net-remoting

我们有一个使用.Net Remoting的遗留应用程序(我们很快将其转换为使用更好的东西)

我们有一个接口dll,在客户端和服务器之间共享,看起来像这样

[ServiceContract]
public interface ExampleInterface
{
    [OperationContract]
    List<DataObject> InterfaceMethod(string strParam);
}

大约两个月前,我们需要更多参数,因此我们创建了一个ParameterObject并添加了一个新的重载函数来支持它;而为旧客户留下旧功能。所以界面现在看起来像:

[OperationContract]
List<DataObject> InterfaceMethod(string strParam);
[OperationContract]
List<DataObject> InterfaceMethod(ParameterObject parameter)

我们已部署更新,并且我们收到的报告是,当旧客户端尝试使用string参数调用该方法时,会抛出一条消息'Cannot resolve the invocation to the correct method'的异常。服务器的异常堆栈跟踪是100%远程代码。

我能够在内部重现并将更新的方法更改为另一个名称解决了问题,但这意味着我们必须更新许多客户。

.Net Remoting中无法进行方法重载吗?有什么解决办法吗?

注意:我们有几个工作的Remoting接口重载方法,但是它们都有不同的参数计数,或许远程无法区分具有相同名称和相同参数计数的两个方法?

1 个答案:

答案 0 :(得分:0)

不确定这是否与问题有关。 在使用.NET远程处理的生产环境中遇到相同的错误(无方法重载)。发现其中一个参考程序集的版本比开发期间使用的参考程序集的版本早。