예제 #1
0
        public static Subscription NewSubscription(Guid subscriber, SubscribeableObject obj, string property, out string result)
        {
            System.Reflection.PropertyInfo propInfo = obj.GetType().GetProperty(property);
            if (propInfo == null)
            {
                result = "unrecognized property name";
                return(null);
            }



            result = "success";
            return(new Subscription(subscriber, obj, property));
        }
예제 #2
0
        public void RemoveSubscription(Guid subscriber, SubscribeableObject obj, string property)
        {
            Subscription subToRemove = null;

            foreach (Subscription sub in Subscriptions)
            {
                if (sub.Subscriber == subscriber && sub.Trigger.Obj == obj && sub.Trigger.Property == property)
                {
                    subToRemove = sub;
                    break;
                }
            }

            if (subToRemove != null)
            {
                subToRemove.Triggered -= SubscriptionTriggerHandler;
                Subscriptions.Remove(subToRemove);
                subToRemove.Dispose();
            }

            subToRemove = null;
        }