Beispiel #1
0
        public void AddEvent(long entity_id, int event_id, long handler_id)
        {
            Soul soul = (from s in _Souls.UpdateSet() where s.Id == entity_id select s).FirstOrDefault();

            if (soul == null)
            {
                return;
            }

            EventInfo eventInfo = _Protocol.GetMemberMap().GetEvent(event_id);

            if (eventInfo == null)
            {
                return;
            }
            if (eventInfo.DeclaringType != soul.ObjectType)
            {
                return;
            }

            Delegate del = _BuildDelegate(eventInfo, soul.Id, handler_id, _InvokeEvent);

            Soul.EventHandler handler = new SoulProvider.Soul.EventHandler(soul.ObjectInstance, del, eventInfo, handler_id);
            soul.AddEvent(handler);
        }