示例#1
0
 private static void Register(ContainerBuilder builder)
 {
     builder.Register(context => new HttpClient()
     {
         BaseAddress = BaseAddress
     });
     builder.Register(context => new WebLoggerFactory()).As <ILoggerFactory>();
     CommonContainer.Register(builder);
 }
示例#2
0
        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);
        }
示例#3
0
        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");
        }