C# .net远程处理-在主机上执行Getter

C# .net远程处理-在主机上执行Getter,c#,remoting,C#,Remoting,我正在编写一个通过MarshalByRefObject使用.net远程处理的应用程序。 我可以连接,对于方法调用等简单的事情,一切都很好。 现在的问题是,当我尝试访问从先前调用中收到的对象的属性时,属性获取程序是执行“客户端”,而不是在主机进程内 在这些getter中,我在本地进程上使用封送,因此它们需要在主机进程而不是客户端上运行 我现在的问题是:是否有任何具体的方法来实现我正在尝试的目标,或者我必须走这条路线,在主机端在公开的接口和实现类中编写额外的方法,以返回getter的值 我的代码如下

我正在编写一个通过MarshalByRefObject使用.net远程处理的应用程序。 我可以连接,对于方法调用等简单的事情,一切都很好。 现在的问题是,当我尝试访问从先前调用中收到的对象的属性时,属性获取程序是执行“客户端”,而不是在主机进程内

在这些getter中,我在本地进程上使用封送,因此它们需要在主机进程而不是客户端上运行

我现在的问题是:是否有任何具体的方法来实现我正在尝试的目标,或者我必须走这条路线,在主机端在公开的接口和实现类中编写额外的方法,以返回getter的值

我的代码如下所示:

MyApi api = new MyApi();
var channel = new IpcChannel(processId.ToString());
ChannelServices.RegisterChannel(channel, false);
RemotingConfiguration.CustomErrorsMode = CustomErrorsModes.On;
RemotingConfiguration.ApplicationName = "MyApi-Server" + processId;
RemotingServices.Marshal(api, "service");
对于主机进程

这是客户端

api = (IMyApi)Activator.GetObject(typeof(IMyApi), "ipc://MyApi-" + process.Id + "/service");
MessageBox.Show(api.GetSomething().Someproperty);
谢谢你的帮助。走开,我真傻。 不仅接口类的实现应该派生自MarshalByRefObject,我要传递的所有其他对象也应该派生