Example #1
0
        /// <summary>
        /// Constructor used for outgoing codepaths
        /// </summary>
        /// <param name="client"></param>
        /// <param name="name"></param>
        /// <param name="id"></param>
        /// <param name="obj"></param>
        private ObjectEntry(SharedObjectsClient client, string name, Guid id, INotifyPropertyChanged obj)
        {
            this.client        = client;
            this.IgnoreChanges = false;

            this.Object = obj;
            this.Id     = id;
            this.Name   = name ?? this.Id.ToString();
            IJsObject jsObj = obj as IJsObject; // do this here so we only do the cast once

            this.IsDynamic = jsObj != null;
            this.Parents   = new Dictionary <Guid, ParentEntry>();
            this.Type      = obj.GetType();

            this.Attributes = new SharedAttributes(obj.GetType());

            if (jsObj != null)
            {
                this.Properties = new SharedPropertyDictionary(jsObj.GetSharedProperties(this.client.ClientId));
            }
            else
            {
                this.Properties = new SharedPropertyDictionary(obj.GetSharedProperties(this.client.ClientId));
            }
        }
Example #2
0
        /// <summary>
        /// Constructor used for outgoing codepaths
        /// </summary>
        /// <param name="client"></param>
        /// <param name="name"></param>
        /// <param name="id"></param>
        /// <param name="obj"></param>
        private ObjectEntry(SharedObjectsClient client, string name, Guid id, INotifyPropertyChanged obj)
        {
            this.client = client;
            this.IgnoreChanges = false;
            
            this.Object = obj;
            this.Id = id;
            this.Name = name ?? this.Id.ToString();
            IJsObject jsObj = obj as IJsObject; // do this here so we only do the cast once
            this.IsDynamic = jsObj != null;
            this.Parents = new Dictionary<Guid, ParentEntry>();
            this.Type = obj.GetType();

            this.Attributes = new SharedAttributes(obj.GetType());

            if(jsObj != null)
            {
                this.Properties = new SharedPropertyDictionary(jsObj.GetSharedProperties(this.client.ClientId));
            }
            else
            {
                this.Properties = new SharedPropertyDictionary(obj.GetSharedProperties(this.client.ClientId));
            }
        }
Example #3
0
        public ObjectPayload(Guid clientId, INotifyPropertyChanged sharedObject, Guid objectId, string objectName)
            : base(objectName, objectId, clientId)
        {
            Type sharedObjectType = sharedObject.GetType();
#if IL2JS
            this.Type = sharedObject.GetType().Name;            
#else
            this.Type = sharedObjectType.AssemblyQualifiedName;
#endif
            this.Attributes = new SharedAttributes(sharedObjectType);
            this.SharedProperties = new SharedPropertyDictionary(sharedObject.GetSharedProperties(clientId));
        }