public void CanCallNonGenericConstructorOnOpenGenericType()
        {
            Container.RegisterType(typeof(ClassWithOneGenericParameter <>),
                                   new InjectionConstructor("Fiddle", new InjectionParameter <object>("someValue")));

            ClassWithOneGenericParameter <Service> result = Container.Resolve <ClassWithOneGenericParameter <Service> >();

            Assert.IsNull(result.InjectedValue);
        }
Ejemplo n.º 2
0
        public void CanCallNonGenericConstructorOnOpenGenericType()
        {
            IUnityContainer container = new UnityContainer()
                                        .RegisterType(typeof(ClassWithOneGenericParameter <>),
                                                      new InjectionConstructor("Fiddle", new InjectionParameter <object>("foo")));

            ClassWithOneGenericParameter <User> result = container.Resolve <ClassWithOneGenericParameter <User> >();

            Assert.IsNull(result.InjectedValue);
        }
        public void CanCallConstructorTakingGenericParameter()
        {
            Container.RegisterType(typeof(ClassWithOneGenericParameter <>),
                                   new InjectionConstructor(new GenericParameter("T")));

            Account a = new Account();

            Container.RegisterInstance <Account>(a);

            ClassWithOneGenericParameter <Account> result = Container.Resolve <ClassWithOneGenericParameter <Account> >();

            Assert.AreSame(a, result.InjectedValue);
        }
        public void CanCallConstructorTakingGenericParameterWithResolvableOptional()
        {
            IUnityContainer container = new UnityContainer()
                                        .RegisterType(typeof(ClassWithOneGenericParameter <>),
                                                      new InjectionConstructor(new OptionalGenericParameter("T")));

            Account a = new Account();

            container.RegisterInstance <Account>(a);

            ClassWithOneGenericParameter <Account> result = container.Resolve <ClassWithOneGenericParameter <Account> >();

            Assert.Same(a, result.InjectedValue);
        }
Ejemplo n.º 5
0
        public void CanCallConstructorTakingGenericParameter()
        {
            IUnityContainer container = new UnityContainer()
                                        .Configure <InjectedMembers>()
                                        .ConfigureInjectionFor(typeof(ClassWithOneGenericParameter <>),
                                                               new InjectionConstructor(new GenericParameter("T")))
                                        .Container;

            Account a = new Account();

            container.RegisterInstance <Account>(a);

            ClassWithOneGenericParameter <Account> result = container.Resolve <ClassWithOneGenericParameter <Account> >();

            Assert.AreSame(a, result.InjectedValue);
        }
        public void CanConfiguredNamedResolutionOfGenericParameter()
        {
            Container.RegisterType(typeof(ClassWithOneGenericParameter <>),
                                   new InjectionConstructor(new GenericParameter("T", "named")));

            Account a = new Account();

            Container.RegisterInstance <Account>(a);
            Account named = new Account();

            Container.RegisterInstance <Account>("named", named);

            ClassWithOneGenericParameter <Account> result = Container.Resolve <ClassWithOneGenericParameter <Account> >();

            Assert.AreSame(named, result.InjectedValue);
        }