public override void Read(Connection connection, XElement node) { base.Read(connection, node); var instanceID = long.Parse(node.Attribute("InstanceID").Value); if (!connection.TryGetRemoteObject(instanceID, out proxy)) { throw new ServerErrorException(); } }
static C ReadProxy <C> (Connection connection, XElement node, Func <long, C> createClientFunc) where C : class, ObjectProxy { var objectID = long.Parse(node.Attribute("ObjectID").Value); C client; if (connection.TryGetRemoteObject(objectID, out client)) { return(client); } client = createClientFunc(objectID); connection.RegisterObjectClient(client); return(client); }