private static void Register(ContainerBuilder builder) { builder.Register(context => new HttpClient() { BaseAddress = BaseAddress }); builder.Register(context => new WebLoggerFactory()).As <ILoggerFactory>(); CommonContainer.Register(builder); }
public void ConfigureContainer(ContainerBuilder builder) { var assembly = Assembly.GetExecutingAssembly(); builder.RegisterAssemblyTypes(assembly); builder.RegisterAssemblyTypes(assembly).AsImplementedInterfaces(); builder.Register(context => LoggerFactory.Create(logBuilder => logBuilder.AddConsole())).As <ILoggerFactory>(); builder.RegisterType <Db>().As <IDb>().SingleInstance(); CommonContainer.Register(builder); }
public void MultipleContainersCanExist() { // Get the containers var containerA = CommonProvider.Container; var containerB = new CommonContainer(); // Register the same type for both containers with different implementations var t = typeof(TestClassBase); containerA.Register(t, typeof(TestClass)); containerB.Register(t, (Func<object[], object>)PrivateTestClass.CreateInstanceWithParams); // Build our instances var instanceA = containerA.Provide<TestClassBase>(35); var instanceB = containerB.Provide<TestClassBase>(1, 1); // Assert we have different strokes for different folks containerA.ShouldNotBeSameAs(containerB); instanceA.ShouldNotBeSameAs(instanceB); instanceA.ShouldNotBeNull("A was null"); instanceB.ShouldNotBeNull("B was null"); instanceA.ShouldBeOfType<TestClass>("A was not expected type"); instanceB.ShouldBeOfType<PrivateTestClass>("B was not expected type"); }