示例#1
0
        static object BuildUpNewObject(IBuilderContext context,
                                       object buildKey)
        {
            ICreationPolicy policy = context.Policies.Get <ICreationPolicy>(buildKey);

            if (policy == null)
            {
                throw new InvalidOperationException("Could not find creation policy for build key " + buildKey);
            }

            return(policy.Create(context, buildKey));
        }
示例#2
0
        public void ZeroConstructorsOnReferenceType()
        {
            MockBuilderContext            context  = new MockBuilderContext();
            ConstructorReflectionStrategy strategy = new ConstructorReflectionStrategy();

            strategy.BuildUp(context, typeof(ZeroClass), null);

            ICreationPolicy policy = context.Policies.Get <ICreationPolicy>(typeof(ZeroClass));

            Assert.NotNull(policy);
            Assert.IsType <ZeroClass>(policy.Create(context, typeof(ZeroClass)));
        }
示例#3
0
        public void OneDecoratedConstructor()
        {
            MockBuilderContext            context  = new MockBuilderContext();
            ConstructorReflectionStrategy strategy = new ConstructorReflectionStrategy();

            strategy.BuildUp(context, typeof(Decorated), null);

            ICreationPolicy policy    = context.Policies.Get <ICreationPolicy>(typeof(Decorated));
            Decorated       decorated = Assert.IsType <Decorated>(policy.Create(context, typeof(Decorated)));

            Assert.True(decorated.Constructor__Called);
        }
        public void ZeroConstructorsOnReferenceType()
        {
            MockBuilderContext context = new MockBuilderContext();
            ConstructorReflectionStrategy <InjectionConstructorAttribute, DependencyAttribute> strategy =
                new ConstructorReflectionStrategy <InjectionConstructorAttribute, DependencyAttribute>();

            context.Strategies.Add(strategy);

            context.ExecuteBuildUp(typeof(ZeroClass), null);

            ICreationPolicy policy = context.Policies.Get <ICreationPolicy>(typeof(ZeroClass));

            Assert.IsNotNull(policy);
            AssertHelper.IsType <ZeroClass>(policy.Create(context, typeof(ZeroClass)));
        }
        public void OneDecoratedConstructor()
        {
            MockBuilderContext context = new MockBuilderContext();
            ConstructorReflectionStrategy <InjectionConstructorAttribute, DependencyAttribute> strategy =
                new ConstructorReflectionStrategy <InjectionConstructorAttribute, DependencyAttribute>();

            context.Strategies.Add(strategy);

            context.ExecuteBuildUp(typeof(Decorated), null);

            ICreationPolicy policy    = context.Policies.Get <ICreationPolicy>(typeof(Decorated));
            Decorated       decorated = AssertHelper.IsType <Decorated>(policy.Create(context, typeof(Decorated)));

            Assert.IsTrue(decorated.Constructor__Called);
        }
示例#6
0
        static object BuildUpNewObject(IBuilderContext context)
        {
            ICreationPolicy policy = context.Policies.Get <ICreationPolicy>(context.BuildKey);

            if (policy == null)
            {
                throw new InvalidOperationException(
                          string.Format(
                              CultureInfo.CurrentCulture,
                              Resources.NoCreationPolicy,
                              context.BuildKey));
            }

            return(policy.Create(context, context.BuildKey));
        }
        public T Get()
        {
            T l_instance = default(T);

            if (availableObjects.Count == 0)
            {
                l_instance = m_CreationPolicy.Create();
            }
            else
            {
                l_instance = availableObjects[availableObjects.Count - 1];
                availableObjects.Remove(l_instance);
            }

            dispatchedObjects.Add(l_instance);

            return(l_instance);
        }