我在远程服务器上有一个单例服务,它有一个将新对象返回给客户端的方法:
public class MySingleton : MarshalByRefObject
{
public override object InitializeLifetimeService()
{
return null;
}
public MarshalByRefObject GetService()
{
return new Model();
}
}
public class Model : MarshalByRefObject
{
}
我不希望模型实例永远存在于服务器上,所以我只想使用正常的赞助程序,在客户端我为我的模型创建一个赞助商,并将远程租约附加到这个赞助商:
var sponsor = new ClientSponsor();
_service = _mySingleton.GetService();
var success = sponsor.Register(_service);
好吧,这行不通。远程对象模型,一段时间后死亡。
你确认这种行为吗?
我猜这是因为服务器上的生命周期管理器没有机会初始化租约,因为对象模型被实例化并直接返回。