public void CanMakeSingletonInstance() { // must use a custom RegistrationConvention to set some as singletons // Which is a bit complex CustomRegistrationConvention registrationConvention = new CustomRegistrationConvention() .WithSingleton<BusinessProcess>(); ObjectFactory.Initialize(x => x.Scan(y => { y.With(registrationConvention); y.AssemblyContainingType(typeof(BusinessProcess)); })); BusinessProcess businessProcess1 = ObjectFactory.GetInstance<BusinessProcess>(); BusinessProcess businessProcess2 = ObjectFactory.GetInstance<BusinessProcess>(); Assert.AreSame(businessProcess1, businessProcess2); }
public void CanMakeTransientInstanceWithSingletonDependencies() { CustomRegistrationConvention registrationConvention = new CustomRegistrationConvention() .WithSingleton<ICustomerService>().WithSingleton<IOrderService>(); ObjectFactory.Initialize(x => x.Scan(y => { y.With(registrationConvention); y.AssemblyContainingType(typeof(BusinessProcess)); })); BusinessProcess businessProcess1 = ObjectFactory.GetInstance<BusinessProcess>(); BusinessProcess businessProcess2 = ObjectFactory.GetInstance<BusinessProcess>(); Assert.AreNotSame(businessProcess1, businessProcess2); Assert.AreSame(businessProcess1.CustomerService, businessProcess2.CustomerService); Assert.AreSame(businessProcess1.OrderService, businessProcess2.OrderService); }