public void Register(UnityContainer container) { container .ConfigureAutoRegistration() .Include(x => x.Assembly == Assembly.GetExecutingAssembly(), Then.Register().AsAllInterfacesOfType().UsingPerCallMode()) .ApplyAutoRegistration(); }
public void CanMakeBusinessProcessWithAssemblyInclusion() { UnityContainer container = new UnityContainer(); container.ConfigureAutoRegistration(). // include just the target assembly. Include(t => InTargetAssembly(t), Then.Register().AsAllInterfacesOfType()). ApplyAutoRegistration(); BusinessProcess businessProcess = container.Resolve<BusinessProcess>(); Assert.IsNotNull(businessProcess); }
public void CanGetAllValidators() { UnityContainer container = new UnityContainer(); container.ConfigureAutoRegistration(). Include(t => InTargetAssembly(t), Then.Register().AsAllInterfacesOfType()). Include(If.Implements<IValidator>, Then.Register().As<IValidator>().WithTypeName()). ApplyAutoRegistration(); var validators = container.ResolveAll<IValidator>(); Assert.IsNotNull(validators); Assert.AreEqual(3, validators.Count()); }
public void CanFilterOutValidatorRegistrations() { UnityContainer container = new UnityContainer(); container.ConfigureAutoRegistration(). Include(t => InTargetAssembly(t), Then.Register().AsAllInterfacesOfType()). Exclude(If.Is<FailValidator>). Include(If.Implements<IValidator>, Then.Register().As<IValidator>().WithTypeName()). ApplyAutoRegistration(); // excluding the FailValidator should leave 2 of them var validators = container.ResolveAll<IValidator>(); Assert.IsNotNull(validators); Assert.AreEqual(2, validators.Count()); }
public void CanMakeBusinessProcessWithAssemblyExclusion() { UnityContainer container = new UnityContainer(); container.ConfigureAutoRegistration(). Include(t => true, Then.Register().AsAllInterfacesOfType()). // exclude system and library assemblies ExcludeSystemAssemblies(). ExcludeAssemblies(a => IsLibraryAssembly(a)). ApplyAutoRegistration(); BusinessProcess businessProcess = container.Resolve<BusinessProcess>(); Assert.IsNotNull(businessProcess); }
private static void UnityAutoRegistration() { // Register var container = new UnityContainer(); container .ConfigureAutoRegistration() .LoadAssemblyFrom(typeof(ICourseRepository).Assembly.Location) .LoadAssemblyFrom(typeof(ICourseAppService).Assembly.Location) .LoadAssemblyFrom(typeof(SqlCourseRepository).Assembly.Location) .Include(If.ImplementsITypeName, Then.Register()) .ExcludeSystemAssemblies() .ApplyAutoRegistration(); // Resolve var svc = container.Resolve<ICourseAppService>(); var descriptions = svc.GetCourseDescriptions(new int[] { 10, 20, 30 }); Console.WriteLine(descriptions); Console.ReadLine(); }
public void CanMakeSingletonInstance() { UnityContainer container = new UnityContainer(); container.ConfigureAutoRegistration(). Include(t => t != typeof(BusinessProcess), Then.Register().AsAllInterfacesOfType()). Include(t => t == typeof(BusinessProcess), Then.Register().AsSelf().UsingSingletonMode()). // exclude system and library assemblies ExcludeSystemAssemblies(). ExcludeAssemblies(a => IsLibraryAssembly(a)). ApplyAutoRegistration(); BusinessProcess businessProcess1 = container.Resolve<BusinessProcess>(); BusinessProcess businessProcess2 = container.Resolve<BusinessProcess>(); Assert.AreSame(businessProcess1, businessProcess2); }
public void CanMakeTransientInstance() { UnityContainer container = new UnityContainer(); container.ConfigureAutoRegistration(). Include(t => true, Then.Register().AsAllInterfacesOfType()). // exclude system and library assemblies ExcludeSystemAssemblies(). ExcludeAssemblies(a => IsLibraryAssembly(a)). ApplyAutoRegistration(); BusinessProcess businessProcess1 = container.Resolve<BusinessProcess>(); BusinessProcess businessProcess2 = container.Resolve<BusinessProcess>(); Assert.AreNotSame(businessProcess1, businessProcess2); }
private void Example() { var container = new UnityContainer(); container .ConfigureAutoRegistration() .LoadAssemblyFrom("MyFancyPlugin.dll") .ExcludeSystemAssemblies() .ExcludeAssemblies(a => a.GetName().FullName.Contains("Test")) .Include(If.ImplementsSingleInterface, Then.Register().AsSingleInterfaceOfType().UsingSingletonMode()) .Include(If.Implements<ILogger>, Then.Register().UsingPerCallMode()) .Include(If.ImplementsITypeName, Then.Register().WithTypeName()) .Include(If.Implements<ICustomerRepository>, Then.Register().WithName("Sample")) .Include(If.Implements<IOrderRepository>, Then.Register().AsSingleInterfaceOfType().UsingPerCallMode()) .Include(If.DecoratedWith<LoggerAttribute>, Then.Register() .As<IDisposable>() .WithPartName(WellKnownAppParts.Logger) .UsingLifetime<MyLifetimeManager>()) .Exclude(t => t.Name.Contains("Trace")) .ApplyAutoRegistration(); }