/// <summary> /// Creates the object reference for source object. /// </summary> /// <param name="source">The source.</param> /// <param name="destinationSession">The destination session.</param> /// <returns>Object reference</returns> public static ObjectReference CreateObjectReference(object source, Session destinationSession) { ObjectReference result = null; if (source != null && source is IXPObject) { result = new ObjectReference(destinationSession); result.Assign(source); } return result; }
/// <summary> /// Restores the object from reference. /// </summary> /// <param name="objectSpace">The object space.</param> /// <param name="senderNodeId">The sender node id.</param> /// <param name="reference">The reference.</param> /// <param name="objectShouldExists">if set to <c>true</c> [object should exists].</param> /// <returns></returns> private static object restoreObjectFromRef(IObjectSpace objectSpace, string senderNodeId, ObjectReference reference, out bool objectShouldExists) { object result = null; objectShouldExists = reference != null && reference.IsAssigned; if (objectShouldExists) result = OidMap.FindApplicationObject(objectSpace, reference, senderNodeId); return result; }