当前位置: 首页>>代码示例>>C#>>正文


C# ContainerBuilder.Register方法代码示例

本文整理汇总了C#中ContainerBuilder.Register方法的典型用法代码示例。如果您正苦于以下问题:C# ContainerBuilder.Register方法的具体用法?C# ContainerBuilder.Register怎么用?C# ContainerBuilder.Register使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ContainerBuilder的用法示例。


在下文中一共展示了ContainerBuilder.Register方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: WrapperResolvesAuthenticationFilterFromDependencyScope

        public void WrapperResolvesAuthenticationFilterFromDependencyScope()
        {
            var builder = new ContainerBuilder();
            builder.Register<ILogger>(c => new Logger()).InstancePerDependency();
            var activationCount = 0;
            builder.Register<IAutofacAuthenticationFilter>(c => new TestAuthenticationFilter(c.Resolve<ILogger>()))
                .AsWebApiAuthenticationFilterFor<TestController>(c => c.Get())
                .InstancePerRequest()
                .OnActivated(e => activationCount++);
            var container = builder.Build();

            var resolver = new AutofacWebApiDependencyResolver(container);
            var configuration = new HttpConfiguration { DependencyResolver = resolver };
            var requestMessage = new HttpRequestMessage();
            requestMessage.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, configuration);
            var contollerContext = new HttpControllerContext { Request = requestMessage };
            var controllerDescriptor = new HttpControllerDescriptor { ControllerType = typeof(TestController) };
            var methodInfo = typeof(TestController).GetMethod("Get");
            var actionDescriptor = new ReflectedHttpActionDescriptor(controllerDescriptor, methodInfo);
            var actionContext = new HttpActionContext(contollerContext, actionDescriptor);
            var context = new HttpAuthenticationContext(actionContext, Thread.CurrentPrincipal);
            var metadata = new FilterMetadata
            {
                ControllerType = typeof(TestController),
                FilterScope = FilterScope.Action,
                MethodInfo = methodInfo
            };
            var wrapper = new AuthenticationFilterWrapper(metadata);

            wrapper.OnAuthenticate(context);
            Assert.That(activationCount, Is.EqualTo(1));
        }
开发者ID:RoymanJing,项目名称:Autofac,代码行数:32,代码来源:AuthenticationFilterWrapperFixture.cs

示例2: Load

        /// <summary>
        /// Override to add registrations to the container.
        /// </summary>
        /// <param name="builder">
        /// The builder through which components can be registered. 
        /// </param>
        /// <remarks>
        /// </remarks>
        protected override void Load(ContainerBuilder builder)
        {
            builder.Register(
                c =>
                CloudStorage.ForAzureAccount(this.account ?? this.Patch(c.Resolve<CloudStorageAccount>())).
                    WithDataSerializer(c.Resolve<IDataSerializer>()).WithObserver(c.ResolveOptional<IStorageObserver>())
                    .BuildStorageProviders()).OnRelease(p => p.QueueStorage.AbandonAll());

            builder.Register(
                c =>
                CloudStorage.ForAzureAccount(this.account ?? this.Patch(c.Resolve<CloudStorageAccount>())).
                    WithDataSerializer(c.Resolve<IDataSerializer>()).WithObserver(c.ResolveOptional<IStorageObserver>())
                    .BuildBlobStorage());

            builder.Register(
                c =>
                CloudStorage.ForAzureAccount(this.account ?? this.Patch(c.Resolve<CloudStorageAccount>())).
                    WithDataSerializer(c.Resolve<IDataSerializer>()).WithObserver(c.ResolveOptional<IStorageObserver>())
                    .BuildQueueStorage()).OnRelease(p => p.AbandonAll());

            builder.Register(
                c =>
                CloudStorage.ForAzureAccount(this.account ?? this.Patch(c.Resolve<CloudStorageAccount>())).
                    WithDataSerializer(c.Resolve<IDataSerializer>()).WithObserver(c.ResolveOptional<IStorageObserver>())
                    .BuildTableStorage());

            builder.Register(
                c =>
                new NeutralLogStorage
                    {
                        BlobStorage =
                            CloudStorage.ForAzureAccount(this.account ?? this.Patch(c.Resolve<CloudStorageAccount>())).
                            WithDataSerializer(new CloudFormatter()).BuildBlobStorage()
                    });
        }
开发者ID:wforney,项目名称:lokad-cloud-storage,代码行数:43,代码来源:AzureStorageModule.cs

示例3: Instance_is_not_reused_in_different_httprequests

        public void Instance_is_not_reused_in_different_httprequests()
        {
            var builder = new ContainerBuilder();

            var currentItems = new Dictionary<string, object>();

            var currentContext = new Mock<HttpContextBase>();
            currentContext
                .Setup(c => c.Items)
                .Returns(currentItems);

            builder.DefaultControlledBy(() => new HttpRequestLifecycle
                                                  {
                                                      CurrentContext = currentContext.Object
                                                  });

            builder.Register<IBar, Bar>().ControlledBy<TransientLifecycle>();
            builder.Register<IFoo, Foo>();

            var container = builder.Build();

            var firstResolvedInstanceInContext = container.Resolve<IFoo>();

            currentItems = new Dictionary<string, object>();

            // Simulate new request scope.
            currentContext
                .Setup(c => c.Items)
                .Returns(currentItems);

            var secondResolvedInstanceInContext = container.Resolve<IFoo>();

            Assert.AreNotSame(firstResolvedInstanceInContext, secondResolvedInstanceInContext);
        }
开发者ID:peterbucher,项目名称:LightCore,代码行数:34,代码来源:HttpRequestLifecycleTests.cs

示例4: Load

 protected override void Load(ContainerBuilder builder)
 {
     builder.Register(c => new WorkingDirectory(c.Resolve<DirectoryInfo>())).As<IWorkingDirectory>().ContainerScoped();
     builder.Register(c => new Repository(c.Resolve<IWorkingDirectory>())).As<IRepository>().ContainerScoped();
     builder.Register(c => new Index(c.Resolve<IRepository>())).As<IIndex>();
     builder.Register(c => new GitLib()).As<IGit>();
 }
开发者ID:kthompson,项目名称:gitty_old,代码行数:7,代码来源:GitCommandLine.cs

示例5: Instance_is_reused_on_same_thread_when_controlled_by_threadsingleton_lifecycle

        public void Instance_is_reused_on_same_thread_when_controlled_by_threadsingleton_lifecycle()
        {
            var builder = new ContainerBuilder();

            builder.DefaultControlledBy<ThreadSingletonLifecycle>();
            builder.Register<IFoo, Foo>();
            builder.Register<IBar, Bar>();

            var container = builder.Build();

            var threadData = new ThreadData(container);
            var thread = new Thread(threadData.ResolveFoosWithContainer);

            var threadDataTwo = new ThreadData(container);
            var threadTwo = new Thread(threadDataTwo.ResolveFoosWithContainer);

            thread.Start();
            threadTwo.Start();

            thread.Join();
            threadTwo.Join();

            Assert.IsTrue(ReferenceEquals(threadData.FooOne, threadData.FooTwo));
            Assert.IsFalse(ReferenceEquals(threadData.FooOne, threadDataTwo.FooOne));
        }
开发者ID:AlexZeitler,项目名称:LightCore,代码行数:25,代码来源:LifecycleTests.cs

示例6: Main

        /// <summary>
        /// Main entry point for the program.
        /// </summary>
        /// <param name="args">The arguments.</param>
        static void Main(string[] args)
        {
            var builder = new ContainerBuilder();

            var module = new XamlRegistrationModule();

            builder.Register("Test");

            //builder.Register<IRepository<Foo>, FooRepository>();

            builder.RegisterModule(module);

            builder.Register<IBar, Bar>();

            var container = builder.Build();

            var fooRepository = container.Resolve<IRepository<Foo, Bar>>();

            var fsdfsdfd = fooRepository;

            var func = container.Resolve<Func<string>>();
            var test = func();

            var namedScreen = container.Resolve<WelcomeScreen>();
            namedScreen.WriteText();


            Console.Read();
        }
开发者ID:peterbucher,项目名称:LightCore,代码行数:33,代码来源:Program.cs

示例7: Load

        /// <summary>
        /// Override to add registrations to the container.
        /// </summary>
        /// <param name="builder">
        /// The builder through which components can be registered. 
        /// </param>
        /// <remarks>
        /// </remarks>
        protected override void Load(ContainerBuilder builder)
        {
            builder.Register(
                c =>
                CloudStorage.ForInMemoryStorage().WithDataSerializer(c.Resolve<IDataSerializer>()).WithObserver(
                    c.ResolveOptional<IStorageObserver>()).BuildStorageProviders()).OnRelease(
                        p => p.QueueStorage.AbandonAll());

            builder.Register(
                c =>
                CloudStorage.ForInMemoryStorage().WithDataSerializer(c.Resolve<IDataSerializer>()).WithObserver(
                    c.ResolveOptional<IStorageObserver>()).BuildBlobStorage());

            builder.Register(
                c =>
                CloudStorage.ForInMemoryStorage().WithDataSerializer(c.Resolve<IDataSerializer>()).WithObserver(
                    c.ResolveOptional<IStorageObserver>()).BuildQueueStorage()).OnRelease(p => p.AbandonAll());

            builder.Register(
                c =>
                CloudStorage.ForInMemoryStorage().WithDataSerializer(c.Resolve<IDataSerializer>()).WithObserver(
                    c.ResolveOptional<IStorageObserver>()).BuildTableStorage());

            builder.Register(c => new NeutralLogStorage { BlobStorage = new MemoryBlobStorageProvider() });
        }
开发者ID:wforney,项目名称:lokad-cloud-storage,代码行数:33,代码来源:MemoryStorageModule.cs

示例8: RegisterDependencies

        private static void RegisterDependencies()
        {
            var builder = new ContainerBuilder();

            builder.Register<IFoo, Foo>().WithArguments("Test Argument", true);
            builder.Register<IBar, Bar>();

            _container = builder.Build();
        }
开发者ID:peterbucher,项目名称:LightCore,代码行数:9,代码来源:Global.asax.cs

示例9: setupIoc

 void setupIoc()
 {
     Action<MappingConfiguration> mappingConfiguration =
         mappings => mappings.FluentMappings.AddFromAssemblyOf<AttendeeMap>();
     IContainerBuilder builder = new ContainerBuilder();
     builder.Register<INHibernateSessionProvider, SqlServerConnectionStringNHibernateSessionProvider>().WithArguments("nosplanner", mappingConfiguration).ControlledBy<SingletonLifecycle>();
     builder.Register<IAttendeeRepository, AttendeeRepository>().ControlledBy<SingletonLifecycle>();
     _container = builder.Build();
 }
开发者ID:AlexZeitler,项目名称:OpenSpacePlanner,代码行数:9,代码来源:Global.asax.cs

示例10: ConfigureContainer

 public static void ConfigureContainer(ContainerBuilder builder)
 {
     builder.Register(c => Mapper.Engine).As<IMappingEngine>();
     builder.Register<TypeMapFactory>().As<ITypeMapFactory>();
     builder.Register(c => AutoMapper.Mappers.MapperRegistry.AllMappers());
     builder.Register<Configuration>()
         .As<Configuration>()
         .As<IConfigurationProvider>()
         .As<IConfiguration>();
 }
开发者ID:robyvandamme,项目名称:irobyx_samples,代码行数:10,代码来源:AutoMapperContainerConfiguration.cs

示例11: Prepare

        public override void Prepare()
        {
            var builder = new ContainerBuilder();

            builder.Register<ISingleton, Singleton>().ControlledBy<SingletonLifecycle>();
            builder.Register<ITransient, Transient>().ControlledBy<TransientLifecycle>();
            builder.Register<ICombined, Combined>().ControlledBy<TransientLifecycle>();

            this.container = builder.Build();
        }
开发者ID:junxy,项目名称:IocPerformance,代码行数:10,代码来源:LightCoreContainerAdapter.cs

示例12: Container_throws_exception_on_singleresolve_with_multiple_registrations

        public void Container_throws_exception_on_singleresolve_with_multiple_registrations()
        {
            var builder = new ContainerBuilder();
            builder.Register<IFoo, Foo>();
            builder.Register<IFoo, FooTwo>();
            
            var container = builder.Build();

            var foo = container.Resolve<IFoo>();
        }
开发者ID:peterbucher,项目名称:LightCore,代码行数:10,代码来源:ContainerTests.cs

示例13: CanDecorateAndResolveNormalDependencies

 public void CanDecorateAndResolveNormalDependencies()
 {
     var builder = new ContainerBuilder();
     builder.Register<AberFakeComponent>().SingletonScoped();
     builder.Register<IFakeComponent, FakeComponent>().With<FakeComponentDecoratorWithOtherDependency>();
     var container = builder.Build();
     var fakeComponent = container.Resolve<IFakeComponent>();
     var fakeComponentDecorator = fakeComponent as FakeComponentDecoratorWithOtherDependency;
     Assert.IsNotNull( fakeComponentDecorator );
     Assert.IsAssignableFrom( typeof( FakeComponent ), fakeComponentDecorator.DecoratedInstance );
 }
开发者ID:bmbsqd,项目名称:container,代码行数:11,代码来源:DecoratorTests.cs

示例14: ContainerBuilder_with_non_active_groups_throws_registrationNotFoundException

        public void ContainerBuilder_with_non_active_groups_throws_registrationNotFoundException()
        {
            var builder = new ContainerBuilder();

            builder.Register<IFoo, FooTwo>().WithGroup( "Test" );
            builder.Register<IFoo, Foo>().WithGroup( "Test2" );

            var container = builder.Build();

            Assert.That(() => container.Resolve<IFoo>(), Throws.InstanceOf<RegistrationNotFoundException>());
        }
开发者ID:peterbucher,项目名称:LightCore,代码行数:11,代码来源:ContainerBuilderTests.cs

示例15: Container_resolves_registed_abstract_class

        public void Container_resolves_registed_abstract_class()
        {
            var builder = new ContainerBuilder();
            builder.Register<IBar, Bar>();
            builder.Register<FooBase, Foo>();

            var container = builder.Build();
            var instance = container.Resolve<FooBase>();

            Assert.IsInstanceOf<FooBase>(instance);
        }
开发者ID:AlexZeitler,项目名称:LightCore,代码行数:11,代码来源:ResolvingTests.cs


注:本文中的ContainerBuilder.Register方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。