How to know when a CAO client has close?
Thx in advance.
Thx in advance.
Use a Server Activated object implementing a factory pattern. All code reflects the server side. . .
Your Server Activated has a method that returns the individual client objects, in this case they are instances of MyRemotedClass.
public class ObjectDisconnectedArgs: EventArgs { public object DisconnectedObject; public ClientDisconnectedArgs(object obj) { DisconnectedObject = obj; } } |
public delegate void ObjectDisconnectedHandler(object sender, ObjectDisconnectedArgs e); |
public class ObjectTracker: ITrackingHandler { public event ObjectDisconnectedHandler ObjectDisconnected; public void DisconnectedObject(object obj) MyRemotedClass ro = obj as MyRemotedClass; public void UnmarshaledObject(object obj, System.Runtime.Remoting.ObjRef or){} public void MarshaledObject(object obj, System.Runtime.Remoting.ObjRef or){} |
private void ObjectDisconnected(object sender. ObjectDisconnectedArgs e) { // do something with e.DisconnectedObject here } |
public override object InitializeLifetimeService() { ObjectTracker ot = new ObjectTracker(); ot.ObjectDisconnected += new ObjectDisconnectedHandler(ObjectDisconnected); TrackingServices.RegisterTrackingHandler(ot); return null; } |
make sense?
caveat emptor, may have typos but the gist is correct
I highly recommend Ingo Rammer's:
Advanced .Net Remoting, second ed.
ISBN: 1-59059-417-7
The Microsoft? .NET Remoting blows chunks. . . avoid at all costs!!!