コード例 #1
0
        public sealed override bool TrackChanges(object newValue, SyncContext context)
        {
            if (newValue != value)
            {
                value = newValue;
                if (value == null)
                {
                    PoolID   = 0;
                    EntityID = SyncHandle.NullEntityID;
                }
                else
                {
                    SyncHandle handle = context.GetLinkedHandleByObject(value, out ushort poolID);
                    if (handle != null)
                    {
                        EntityID = handle.EntityID;
                        PoolID   = poolID;
                    }
                    else
                    {
                        EntityID = SyncHandle.NullEntityID;
                        PoolID   = 0;
                    }
                }

                Synchronised = false;
                Revision     = context.Revision;
                return(true);
            }
            return(false);
        }