Example #1
0
        public SubscribableHandler(DependencyManager manager, ISubscribable instance)
        {
            Manager = manager;
            manager.StronglyReference(this);
            Instance         = new WeakReference <ISubscribable>(instance);
            InstanceType     = instance.GetType();
            InstanceTypeInfo = InstanceType.GetTypeInfo();

            foreach (var dependency in manager.GetRegistrations(instance.GetSubscribableType()))
            {
                switch (dependency.Key)
                {
                case PropertyDependency propertyDependency:
                    var name = propertyDependency.PropertyName;
                    foreach (var str in dependency.Value)
                    {
                        PropertyDependencies.SafeAddToDictionaryOfList(str, name);
                    }
                    break;
                }
            }

            CachePropertyPath("", instance);
        }