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


C# Container.RegisterSingleton方法代码示例

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


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

示例1: Test_CaptiveDependency_Singleton_Singleton

 public void Test_CaptiveDependency_Singleton_Singleton()
 {
     var container = new Container(log: Write);
     container.RegisterSingleton<ClassA>();
     container.RegisterSingleton<ClassB>();
     container.Resolve<ClassA>();
 }
开发者ID:dshe,项目名称:StandardContainer,代码行数:7,代码来源:CaptiveDependencyTest.cs

示例2: T03_Concrete_Interface

 public void T03_Concrete_Interface()
 {
     var container = new Container(log: Write);
     container.RegisterSingleton<ISomeClass>();
     container.RegisterSingleton<SomeClass>();
     Assert.Equal(container.Resolve<SomeClass>(), container.Resolve<ISomeClass>());
 }
开发者ID:dshe,项目名称:StandardContainer,代码行数:7,代码来源:SingletonTest.cs

示例3: Initialize

        public void Initialize(HttpConfiguration configuration, Pandora pandora)
        {
            var container = new Container();
            container.RegisterSingleton<Pandora>(() => pandora);
            Func<IPipelineTransport> transport = () => container.Resolve<IPipelineTransport>();
            Func<ISerializer> serializer = () => container.Resolve<ISerializer>();
            container.RegisterSingleton<IPublisher<ICommand>>(() => new PipelinePublisher<ICommand>(transport(), serializer()));

            var serviceLocator = new ServiceLocator(container);
            ControllerFactory = new ServiceLocatorFactory(serviceLocator);

            var cfg = new CronusSettings(container)
                  .UseCluster(cluster =>
                       cluster.UseAggregateRootAtomicAction(atomic =>
                       {
                           if (pandora.Get<bool>("enable_redis_atomic_action"))
                               atomic.UseRedis(redis => redis.SetLockEndPoints(pandora.Get("redis_endpoints").ParseIPEndPoints(";")));
                           else
                               atomic.WithInMemory();
                       }))
                  .UseContractsFromAssemblies(new[] { Assembly.GetAssembly(typeof(PushNotificationWasSent)) })
                  .UseRabbitMqTransport(x =>
                  {
                      x.Server = pandora.Get("rabbitmq_server");
                      x.Username = pandora.Get("rabbitmq_username");
                      x.Password = pandora.Get("rabbitmq_password");
                      x.VirtualHost = pandora.Get("rabbitmq_virtualhost");
                  });

            (cfg as ICronusSettings).Build();
        }
开发者ID:Elders,项目名称:Pushnotifications,代码行数:31,代码来源:PushNotificationsApiConfiguration.cs

示例4: Test_Multiple2

 public void Test_Multiple2()
 {
     var container = new Container(log: Write);
     container.RegisterSingleton<Foo>();
     container.RegisterSingleton<IFoo1>();
     Assert.Equal(container.Resolve<Foo>(), container.Resolve<IFoo1>());
 }
开发者ID:dshe,项目名称:StandardContainer,代码行数:7,代码来源:MultipleSingletonInterfaces.cs

示例5: T04_Register_Singleton

 public void T04_Register_Singleton()
 {
     var container = new Container(log: Write);
     container.RegisterSingleton<ISomeClass, SomeClass>();
     Assert.Throws<TypeAccessException>(() => container.Resolve<SomeClass>()).WriteMessageTo(Write);
     container.RegisterSingleton<SomeClass>();
     Assert.Equal(container.Resolve<ISomeClass>(), container.Resolve<SomeClass>());
 }
开发者ID:dshe,项目名称:StandardContainer,代码行数:8,代码来源:SingletonTest.cs

示例6: Register2Named

        public void Register2Named()
        {
            var container = new Container();
            container.RegisterSingleton<ClassA>("A");
            container.RegisterSingleton<ClassA>("B");

            var a = container.Resolve<ClassA>("A");
            var b = container.Resolve<ClassA>("B");
            Assert.AreNotSame(a, b);
        }
开发者ID:5665tm,项目名称:UnityDI,代码行数:10,代码来源:RegisterSingletonTests.cs

示例7: T01_Duplicate_Registration

        public void T01_Duplicate_Registration()
        {
            var container = new Container(DefaultLifestyle.Singleton, log: Write);

            container.RegisterSingleton<ClassA1>();
            Assert.Throws<TypeAccessException>(() => container.RegisterSingleton<ClassA1>()).WriteMessageTo(Write);

            container.RegisterSingleton<IMarker1, ClassA2>();
            Assert.Throws<TypeAccessException>(() => container.RegisterSingleton<IMarker1, ClassA2>()).WriteMessageTo(Write);
        }
开发者ID:dshe,项目名称:StandardContainer,代码行数:10,代码来源:UniqueConcreteTest.cs

示例8: T00_Various_types

 public void T00_Various_types()
 {
     var container = new Container(log: Write);
     Assert.Throws<ArgumentNullException>(() => container.RegisterSingleton(null)).WriteMessageTo(Write);
     Assert.Throws<ArgumentNullException>(() => container.RegisterFactory(typeof(object), null)).WriteMessageTo(Write);
     Assert.Throws<ArgumentNullException>(() => container.RegisterInstance(typeof(object), null)).WriteMessageTo(Write);
     Assert.Throws<TypeAccessException>(() => container.RegisterSingleton(typeof(int))).WriteMessageTo(Write);
     Assert.Throws<TypeAccessException>(() => container.RegisterSingleton(typeof(string))).WriteMessageTo(Write);
     Assert.Throws<TypeAccessException>(() => container.RegisterInstance(42)).WriteMessageTo(Write);
     Assert.Throws<ArgumentNullException>(() => container.Resolve(null)).WriteMessageTo(Write);
 }
开发者ID:dshe,项目名称:StandardContainer,代码行数:11,代码来源:RegisterErrorTest.cs

示例9: T03_Registration_Concrete_Multiple

 public void T03_Registration_Concrete_Multiple()
 {
     var container = new Container(log: Write);
     container.RegisterSingleton<IMarker1, ClassA1>();
     container.Resolve<IMarker1>();
     Assert.Throws<TypeAccessException>(() => container.Resolve<ClassA1>()).WriteMessageTo(Write);
 }
开发者ID:dshe,项目名称:StandardContainer,代码行数:7,代码来源:UniqueConcreteTest.cs

示例10: InterceptWithGenericArgAndPredicate_TwoInterceptors_InterceptsTheInstanceWithBothInterceptors

        public void InterceptWithGenericArgAndPredicate_TwoInterceptors_InterceptsTheInstanceWithBothInterceptors()
        {
            // Arrange
            var logger = new FakeLogger();

            var container = new Container();

            container.RegisterSingleton<ILogger>(logger);
            container.Register<ICommand, CommandThatLogsOnExecute>();

            container.InterceptWith<InterceptorThatLogsBeforeAndAfter>(IsACommandPredicate);
            container.InterceptWith<InterceptorThatLogsBeforeAndAfter2>(IsACommandPredicate);

            container.RegisterInitializer<InterceptorThatLogsBeforeAndAfter>(i => i.BeforeText = "Start1 ");
            container.RegisterInitializer<InterceptorThatLogsBeforeAndAfter2>(i => i.BeforeText = "Start2 ");
            container.RegisterInitializer<CommandThatLogsOnExecute>(c => c.ExecuteLogMessage = "Executing");
            container.RegisterInitializer<InterceptorThatLogsBeforeAndAfter>(i => i.AfterText = " Done1");
            container.RegisterInitializer<InterceptorThatLogsBeforeAndAfter2>(i => i.AfterText = " Done2");
            
            // Act
            var command = container.GetInstance<ICommand>();

            command.Execute();

            // Assert
            Assert.AreEqual("Start2 Start1 Executing Done1 Done2", logger.Message);
        }
开发者ID:MichaelSagalovich,项目名称:SimpleInjector,代码行数:27,代码来源:InterceptorExtensionsTests.cs

示例11: Intercept_CollectionWithRegistrationInstances_InterceptsTheInstances

        public void Intercept_CollectionWithRegistrationInstances_InterceptsTheInstances()
        {
            var logger = new FakeLogger();

            var container = new Container();

            container.RegisterSingleton<ILogger>(logger);
            container.RegisterCollection<ICommand>(new[] 
            {
                Lifestyle.Transient.CreateRegistration(typeof(ICommand), typeof(ConcreteCommand), container),
                Lifestyle.Transient.CreateRegistration(typeof(ConcreteCommand), container),
            });

            container.InterceptWith<InterceptorThatLogsBeforeAndAfter>(IsACommandPredicate);

            container.RegisterInitializer<InterceptorThatLogsBeforeAndAfter>(i => i.BeforeText = "Log ");

            // Act
            var commands = container.GetAllInstances<ICommand>().ToList();

            commands.ForEach(Execute);

            // Assert
            Assert.AreEqual("Log Log ", logger.Message);
        }
开发者ID:abatishchev,项目名称:SimpleInjector,代码行数:25,代码来源:InterceptorExtensionsTests.cs

示例12: T02

 public void T02()
 {
     var container = new Container(defaultLifestyle: DefaultLifestyle.Singleton, log: Write, assemblies: typeof(string).Assembly);
     container.RegisterSingleton<IClassA, ClassA>();
     Write("");
     container.Log();
 }
开发者ID:dshe,项目名称:StandardContainer,代码行数:7,代码来源:LogTest.cs

示例13: Test_CaptiveDependency_Singleton_Transient

 public void Test_CaptiveDependency_Singleton_Transient()
 {
     var container = new Container(log: Write);
     container.RegisterSingleton<ClassA>();
     container.RegisterTransient<ClassB>();
     Assert.Throws<TypeAccessException>(() => container.Resolve<ClassA>()).WriteMessageTo(Write);
 }
开发者ID:dshe,项目名称:StandardContainer,代码行数:7,代码来源:CaptiveDependencyTest.cs

示例14: Main

 public static void Main()
 {
     var container = new Container();
     container.RegisterSingleton<IFoo, Foo>();
     IFoo foo = container.Resolve<IFoo>();
     // ...
 }
开发者ID:dshe,项目名称:StandardContainer,代码行数:7,代码来源:example1.cs

示例15: T05_Duplicate_Concrete_Interface

 public void T05_Duplicate_Concrete_Interface()
 {
     var container = new Container(log: Write);
     container.RegisterSingleton<ISomeClass, SomeClass>();
     container.RegisterSingleton<SomeClass>();
     Assert.Throws<TypeAccessException>(() => container.RegisterSingleton<SomeClass>()).WriteMessageTo(Write);
 }
开发者ID:dshe,项目名称:StandardContainer,代码行数:7,代码来源:RegisterErrorTest.cs


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