本文整理汇总了C#中MarshalByRefObject.InitializeLifetimeService方法的典型用法代码示例。如果您正苦于以下问题:C# MarshalByRefObject.InitializeLifetimeService方法的具体用法?C# MarshalByRefObject.InitializeLifetimeService怎么用?C# MarshalByRefObject.InitializeLifetimeService使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MarshalByRefObject
的用法示例。
在下文中一共展示了MarshalByRefObject.InitializeLifetimeService方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateClientActivatedServerIdentity
internal static ClientActivatedIdentity CreateClientActivatedServerIdentity(MarshalByRefObject realObject, Type objectType, string objectUri)
{
ClientActivatedIdentity identity = new ClientActivatedIdentity (objectUri, objectType);
identity.AttachServerObject (realObject, Context.DefaultContext);
RegisterServerIdentity (identity);
identity.StartTrackingLifetime ((ILease)realObject.InitializeLifetimeService ());
return identity;
}
示例2: Marshal
public static ObjRef Marshal (MarshalByRefObject Obj, string ObjURI, Type RequestedType)
{
if (IsTransparentProxy (Obj))
{
RealProxy proxy = RemotingServices.GetRealProxy (Obj);
Identity identity = proxy.ObjectIdentity;
if (identity != null)
{
if (proxy.GetProxiedType().IsContextful && !identity.IsConnected)
{
// Unregistered local contextbound object. Register now.
ClientActivatedIdentity cboundIdentity = (ClientActivatedIdentity)identity;
if (ObjURI == null) ObjURI = NewUri();
cboundIdentity.ObjectUri = ObjURI;
RegisterServerIdentity (cboundIdentity);
cboundIdentity.StartTrackingLifetime ((ILease)Obj.InitializeLifetimeService());
return cboundIdentity.CreateObjRef (RequestedType);
}
else if (ObjURI != null)
throw new RemotingException ("It is not possible marshal a proxy of a remote object.");
ObjRef or = proxy.ObjectIdentity.CreateObjRef (RequestedType);
TrackingServices.NotifyMarshaledObject (Obj, or);
return or;
}
}
if (RequestedType == null) RequestedType = Obj.GetType ();
if (ObjURI == null)
{
if (Obj.ObjectIdentity == null)
{
ObjURI = NewUri();
CreateClientActivatedServerIdentity (Obj, RequestedType, ObjURI);
}
}
else
{
ClientActivatedIdentity identity = GetIdentityForUri ("/" + ObjURI) as ClientActivatedIdentity;
if (identity == null || Obj != identity.GetServerObject())
CreateClientActivatedServerIdentity (Obj, RequestedType, ObjURI);
}
ObjRef oref;
if (IsTransparentProxy (Obj))
oref = RemotingServices.GetRealProxy (Obj).ObjectIdentity.CreateObjRef (RequestedType);
else
oref = Obj.CreateObjRef (RequestedType);
TrackingServices.NotifyMarshaledObject (Obj, oref);
return oref;
}