コード例 #1
0
        public void RegisterManySingletonRegistersAllInterfacesByDefault()
        {
            var container = new ContainerExtension();

            container.RegisterManySingleton <AggregateService>();

            Assert.IsType <AggregateService>(container.Resolve <IServiceA>());
            Assert.IsType <AggregateService>(container.Resolve <IServiceB>());
            Assert.IsType <AggregateService>(container.Resolve <IServiceC>());
        }
コード例 #2
0
        public void RegisterManySingletonOnlyRegistersSpecifiedInterfaces()
        {
            var container = new ContainerExtension();

            container.RegisterManySingleton <AggregateService>(typeof(IServiceA), typeof(IServiceB));

            Assert.IsType <AggregateService>(container.Resolve <IServiceA>());
            Assert.IsType <AggregateService>(container.Resolve <IServiceB>());
            var ex = Record.Exception(() => container.Resolve <IServiceC>());

            Assert.NotNull(ex);
        }
コード例 #3
0
        public void RegisterManySingletonUsesSharedInstanceForAllServices()
        {
            var container = new ContainerExtension();

            container.RegisterManySingleton <AggregateService>();

            var serviceA = container.Resolve <IServiceA>();
            var serviceB = container.Resolve <IServiceB>();
            var serviceC = container.Resolve <IServiceC>();

            Assert.Same(serviceA, serviceB);
            Assert.Same(serviceB, serviceC);
        }