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); }
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); }
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); }