public ContextualDecoratorInjectionBehavior(Container container,
                                             ContextualPredicateCollection contextualPredicates)
 {
     this.container            = container;
     this.contextualPredicates = contextualPredicates;
     this.defaultBehavior      = container.Options.DependencyInjectionBehavior;
 }
        public static void EnableContextualDecoratorSupport(this ContainerOptions options)
        {
            if (GetContextualPredicates(options.Container) == null)
            {
                var predicates = new ContextualPredicateCollection();

                options.DependencyInjectionBehavior =
                    new ContextualDecoratorInjectionBehavior(options.Container, predicates);

                options.Container.ContainerScope.SetItem(PredicateCollectionKey, predicates);
            }
        }
        public static void EnableContextualDecoratorSupport(this ContainerOptions options)
        {
            var predicates = new ContextualPredicateCollection();

            if (options.Container.GetItem(PredicateCollectionKey) != null)
            {
                throw new InvalidOperationException("EnableContextualDecoratorSupport can't be called twice.");
            }

            options.DependencyInjectionBehavior =
                new ContextualDecoratorInjectionBehavior(options.Container, predicates);

            options.Container.SetItem(PredicateCollectionKey, predicates);
        }
        public static void EnableContextualDecoratorSupport(this ContainerOptions options)
        {
            var predicates = new ContextualPredicateCollection();

            if (options.Container.GetItem(PredicateCollectionKey) != null)
            {
                throw new InvalidOperationException("EnableContextualDecoratorSupport can't be called twice.");
            }

            options.ConstructorInjectionBehavior =
                new ContextualDecoratorInjectionBehavior(options.Container, predicates);

            options.Container.SetItem(PredicateCollectionKey, predicates);
        }
 public ContextualDecoratorInjectionBehavior(Container container, 
     ContextualPredicateCollection contextualPredicates)
 {
     this.contextualPredicates = contextualPredicates;
     this.defaultBehavior = container.Options.DependencyInjectionBehavior;
 }