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


C# ContainerBuilder.RegisterSource方法代码示例

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


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

示例1: AServiceProvideByAnotherRegistrationSourceWillNotBeProvided

 public void AServiceProvideByAnotherRegistrationSourceWillNotBeProvided()
 {
     var cb = new ContainerBuilder();
     cb.RegisterSource(new AnyConcreteTypeNotAlreadyRegisteredSource());
     cb.RegisterSource(new ObjectRegistrationSource());
     var container = cb.Build();
     Assert.True(container.IsRegistered<object>());
     Assert.Equal(1, container.Resolve<IEnumerable<object>>().Count());
 }
开发者ID:vaik,项目名称:Autofac,代码行数:9,代码来源:ResolveAnythingTests.cs

示例2: RegisterAutofac

        public static void RegisterAutofac()
        {
            var builder = new ContainerBuilder();

            // Register your MVC controllers.
            builder.RegisterControllers(typeof(MvcApplication).Assembly);

            // OPTIONAL: Register model binders that require DI.
            builder.RegisterModelBinders(Assembly.GetExecutingAssembly());
            builder.RegisterModelBinderProvider();

            // OPTIONAL: Register web abstractions like HttpContextBase.
            builder.RegisterModule<AutofacWebTypesModule>();

            // OPTIONAL: Enable property injection in view pages.
            builder.RegisterSource(new ViewRegistrationSource());

            // OPTIONAL: Enable property injection into action filters.
            builder.RegisterFilterProvider();

            // Register services
            RegisterServices(builder);

            // Set the dependency resolver to be Autofac.
            var container = builder.Build();
            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
        }
开发者ID:tddold,项目名称:ASP.NET-MVC-Projects,代码行数:27,代码来源:AutofacConfig.cs

示例3: AServiceAlreadyRegisteredWillNotBeProvided

 public void AServiceAlreadyRegisteredWillNotBeProvided()
 {
     var cb = new ContainerBuilder();
     cb.RegisterSource(new AnyConcreteTypeNotAlreadyRegisteredSource());
     cb.RegisterType<RegisteredType>();
     var container = cb.Build();
     Assert.IsTrue(container.IsRegistered<RegisteredType>());
     Assert.AreEqual(1, container.Resolve<IEnumerable<object>>().Count());
 }
开发者ID:RoymanJing,项目名称:Autofac,代码行数:9,代码来源:ResolveAnythingTests.cs

示例4: BeginScope

 public ILifetimeScope BeginScope(Action<ContainerBuilder> additionalConfig = null)
 {
     var builder = new ContainerBuilder();
     builder.RegisterSource(new ContravariantRegistrationSource());
     builder.RegisterEventing();
     builder.RegisterInstance(this).AsSelf().AsImplementedInterfaces();
     builder.RegisterAssemblyTypes(typeof(IHandleEvent<>).Assembly, GetType().Assembly)
         .AsSelf()
         .AsImplementedInterfaces()
         .InstancePerLifetimeScope();
     if (additionalConfig != null)
         additionalConfig(builder);
     return builder.Build();
 }
开发者ID:kelostrada,项目名称:AutofacEvents,代码行数:14,代码来源:UnitTests.cs

示例5: BuildMediator

        private static IMediator BuildMediator()
        {
            var builder = new ContainerBuilder();
            builder.RegisterSource(new ContravariantRegistrationSource());
            builder.RegisterAssemblyTypes(typeof (IMediator).Assembly).AsImplementedInterfaces();
            builder.RegisterAssemblyTypes(typeof (Ping).Assembly).AsImplementedInterfaces();
            builder.RegisterInstance(Console.Out).As<TextWriter>();

            var lazy = new Lazy<IServiceLocator>(() => new AutofacServiceLocator(builder.Build()));
            var serviceLocatorProvider = new ServiceLocatorProvider(() => lazy.Value);
            builder.RegisterInstance(serviceLocatorProvider);
            
            var mediator = serviceLocatorProvider().GetInstance<IMediator>();

            return mediator;
        }
开发者ID:BredStik,项目名称:MediatR,代码行数:16,代码来源:Program.cs

示例6: LifetimeCanBeInstancePerLifetimeScope

        public void LifetimeCanBeInstancePerLifetimeScope()
        {
            var cb = new ContainerBuilder();
            cb.RegisterSource(new AnyConcreteTypeNotAlreadyRegisteredSource().WithRegistrationsAs(rb => rb.InstancePerLifetimeScope()));
            var container = cb.Build();

            var first = container.Resolve<NotRegisteredType>();
            var second = container.Resolve<NotRegisteredType>();
            Assert.Same(first, second);
            using (var scope = container.BeginLifetimeScope())
            {
                var third = scope.Resolve<NotRegisteredType>();
                Assert.NotSame(first, third);
                var fourth = scope.Resolve<NotRegisteredType>();
                Assert.Same(third, fourth);
            }
        }
开发者ID:arronchen,项目名称:Autofac,代码行数:17,代码来源:ResolveAnythingTests.cs

示例7: BuildMediator

        private static IMediator BuildMediator()
        {
            var builder = new ContainerBuilder();
            builder.RegisterSource(new ContravariantRegistrationSource());
            builder.RegisterAssemblyTypes(typeof (IMediator).Assembly).AsImplementedInterfaces();
            builder.RegisterAssemblyTypes(typeof (Ping).Assembly).AsImplementedInterfaces();
            builder.RegisterInstance(Console.Out).As<TextWriter>();
            builder.Register<SingleInstanceFactory>(ctx =>
            {
                var c = ctx.Resolve<IComponentContext>();
                return t => c.Resolve(t);
            });
            builder.Register<MultiInstanceFactory>(ctx =>
            {
                var c = ctx.Resolve<IComponentContext>();
                return t => (IEnumerable<object>) c.Resolve(typeof (IEnumerable<>).MakeGenericType(t));
            });

            var mediator = builder.Build().Resolve<IMediator>();

            return mediator;
        }
开发者ID:johnpro,项目名称:MediatR,代码行数:22,代码来源:Program.cs

示例8: CreateScopeRestrictedRegistry

        ScopeRestrictedRegistry CreateScopeRestrictedRegistry(object tag, Action<ContainerBuilder> configurationAction)
        {
            var builder = new ContainerBuilder();

            foreach (var source in ComponentRegistry.Sources
                .Where(src => src.IsAdapterForIndividualComponents))
                builder.RegisterSource(source);

            var parents = Traverse.Across<ISharingLifetimeScope>(this, s => s.ParentLifetimeScope)
                .Where(s => s.ComponentRegistry.HasLocalComponents)
                .Select(s => new ExternalRegistrySource(s.ComponentRegistry))
                .Reverse();

            foreach (var external in parents)
                builder.RegisterSource(external);

            configurationAction(builder);

            var locals = new ScopeRestrictedRegistry(tag);
            builder.Update(locals);
            return locals;
        }
开发者ID:Ontropix,项目名称:slow-camera,代码行数:22,代码来源:LifetimeScope.cs

示例9: ConfigureAutofac

 private void ConfigureAutofac()
 {
     var registrationSource = new MefRegistrationSource(CompositionContainer);
     var builder = new ContainerBuilder();
     builder.RegisterSource(registrationSource);
     builder.Update(_context.ComponentRegistry);
 }
开发者ID:grozeille,项目名称:MefContrib,代码行数:7,代码来源:CompositionIntegration.cs

示例10: TypesIgnoredUsingPredicateAreNotResolvedFromTheContainer

 public void TypesIgnoredUsingPredicateAreNotResolvedFromTheContainer()
 {
     var cb = new ContainerBuilder();
     var registrationSource = new AnyConcreteTypeNotAlreadyRegisteredSource(t => !t.IsAssignableTo<string>());
     cb.RegisterSource(registrationSource);
     var container = cb.Build();
     Assert.False(container.IsRegistered<string>());
 }
开发者ID:vaik,项目名称:Autofac,代码行数:8,代码来源:ResolveAnythingTests.cs

示例11: CreateResolveAnythingContainer

 static IContainer CreateResolveAnythingContainer()
 {
     var cb = new ContainerBuilder();
     cb.RegisterSource(new AnyConcreteTypeNotAlreadyRegisteredSource());
     return cb.Build();
 }
开发者ID:vaik,项目名称:Autofac,代码行数:6,代码来源:ResolveAnythingTests.cs

示例12: CreateScopeRestrictedRegistry

		ScopeRestrictedRegistry CreateScopeRestrictedRegistry(object tag, Action<ContainerBuilder> configurationAction)
		{
			var builder = new ContainerBuilder();

			foreach (var source in ComponentRegistry.Sources)
				if (source.IsAdapterForIndividualComponents)
					builder.RegisterSource(source);

			ISharingLifetimeScope current = this;
			var list = new LinkedList<ExternalRegistrySource>();
			while (current != null)
			{
				if (current.ComponentRegistry.HasLocalComponents)
					list.AddFirst(new ExternalRegistrySource(current.ComponentRegistry));
				current = current.ParentLifetimeScope;
			}

			foreach (var external in list)
				builder.RegisterSource(external);

			configurationAction(builder);

			var locals = new ScopeRestrictedRegistry(tag);
			builder.Update(locals);
			return locals;
		}
开发者ID:dstimac,项目名称:revenj,代码行数:26,代码来源:LifetimeScope.cs


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