C# 如何在.net远程处理调用中使用派生类型
我有一个使用.net远程处理连接的服务 我想用从方法签名中的类型继承的对象调用一个方法 但是,当我使用派生类型调用时,我在执行远程调用时会得到一个IndexOutOfRangeException:C# 如何在.net远程处理调用中使用派生类型,c#,.net,remoting,C#,.net,Remoting,我有一个使用.net远程处理连接的服务 我想用从方法签名中的类型继承的对象调用一个方法 但是,当我使用派生类型调用时,我在执行远程调用时会得到一个IndexOutOfRangeException: public class BaseClass { } public class DerivedClass : BaseClass { public string ExtraProperty { get; set; } } public class RemoteObject { pu
public class BaseClass { }
public class DerivedClass : BaseClass
{
public string ExtraProperty { get; set; }
}
public class RemoteObject
{
public void MyMethod(BaseClass obj)
{
/* things */
}
}
public class Main
{
public static Main()
{
// pretend this is using System.Activator and
// System.Runtime.Remoting to do magic
RemoteObject ro = RemotingHelper.GetRemoteObject();
// works
ro.MyMethod(new BaseClass());
// IndexOutOfRangeException
ro.MyMethod(new DerivedClass());
}
}
大概就是这样,但是有什么解决办法吗?您的DerivedClass需要在远程端被了解。此外,远程处理虽然不会消失,但现在只能在内部使用,没有人会修复它。Cf: