public void MakeSure_()
        {
            var builder = new StructureMapObjectBuilder();


            builder.Configure(typeof(MyBus), DependencyLifecycle.SingleInstance);

            builder.Configure(typeof(DependsOnIBus), DependencyLifecycle.InstancePerCall);

            using (var childBuilder = builder.BuildChildContainer())
            {
                //this is the main use case
                childBuilder.Build(typeof(DependsOnIBus));

                //this one is ok
                childBuilder.Build(typeof(MyBus));

                //but this one fails
                childBuilder.Build(typeof(IBus2));
            }

            Assert.False(((MyBus)builder.Build(typeof(MyBus))).Disposed);
        }
        public void MakeSure_()
        {
            var builder = new StructureMapObjectBuilder();


            builder.Configure(typeof(MyBus), DependencyLifecycle.SingleInstance);

            builder.Configure(typeof(DependsOnIBus), DependencyLifecycle.InstancePerCall);

            using (var childBuilder = builder.BuildChildContainer())
            {
                //this is the main use case
                childBuilder.Build(typeof(DependsOnIBus));

                //this one is ok
                childBuilder.Build(typeof(MyBus));

                //but this one fails
                childBuilder.Build(typeof(IBus2));
            }

            Assert.False(((MyBus)builder.Build(typeof(MyBus))).Disposed);
        }
示例#3
0
        public void ConfigureService <T>(string[] args) where T : class, IServiceInterface
        {
            IRunConfiguration cfg = RunnerConfigurator.New(c =>
            {
                c.SetServiceName(ServiceName);
                c.SetDisplayName(DisplayName);
                c.SetDescription(Description);

                c.RunAsLocalSystem();
                c.DependencyOnMsmq();

                c.ConfigureService <T>(typeof(T).Name, s =>
                {
                    MsmqEndpointConfigurator.Defaults(def => def.CreateMissingQueues = true);
                    s.CreateServiceLocator(() =>
                    {
                        Container container = new Container(x =>
                        {
                            x.AddRegistry(new IocRegistry(SourceQueue, SubscriptionQueue));

                            ContainerSetup(x);
                        });

                        IServiceLocator objectBuilder = new StructureMapObjectBuilder(container);
                        ServiceLocator.SetLocatorProvider(() => objectBuilder);
                        return(objectBuilder);
                    });

                    s.WhenStarted(start => start.Start());
                    s.WhenStopped(stop => stop.Stop());
                });
            });

            ObjectFactory.AssertConfigurationIsValid();

            Runner.Host(cfg, args);
        }