在通過Remoting調用重載的泛型方法時,遇到了一個奇怪的問題,現使用一個例子一步步來說明如下。
一.沒有重載的情況
假設Remoting的接口是IComputer:
public interface IComputer
{
int Add<TEntity>(TEntity c);
}
在Remoting Server上的實現非常簡單:
public class Computer : IComputer
{
public int Add<TEntity>(TEntity c)
{
return 0;
}
}
然後,通過Spring.Net分別在配置Server和Client的Remoting通道,接著ClIEnt作如下調用:
IComputer remoteComupter = (IComputer)Program.SpringContext.GetObject("remotingComputer");
int res2 = remoteComupter.Add<GameRecordDetail>(new GameRecordDetail());
這個調用是成功的,沒有任何問題,返回值為0。