Пример #1
0
 public void SimpleInjector()
 {
     _simpleInjectorContainer.GetInstance <ICompositionRoot>();
     _simpleInjectorContainer.GetInstance <ICompositionRoot>();
     _simpleInjectorContainer.GetInstance <ICompositionRoot>();
     _simpleInjectorContainer.GetInstance <ICompositionRoot>();
     _simpleInjectorContainer.GetInstance <ICompositionRoot>();
     _simpleInjectorContainer.GetInstance <ICompositionRoot>();
     _simpleInjectorContainer.GetInstance <ICompositionRoot>();
     _simpleInjectorContainer.GetInstance <ICompositionRoot>();
     _simpleInjectorContainer.GetInstance <ICompositionRoot>();
     _simpleInjectorContainer.GetInstance <ICompositionRoot>();
 }
Пример #2
0
 public void SimpleInjector()
 {
     for (var i = 0; i < Series; i++)
     {
         _simpleInjectorContainer.GetInstance <IServiceRoot>().DoSomething();
         _simpleInjectorContainer.GetInstance <IServiceRoot>().DoSomething();
         _simpleInjectorContainer.GetInstance <IServiceRoot>().DoSomething();
         _simpleInjectorContainer.GetInstance <IServiceRoot>().DoSomething();
         _simpleInjectorContainer.GetInstance <IServiceRoot>().DoSomething();
         _simpleInjectorContainer.GetInstance <IServiceRoot>().DoSomething();
         _simpleInjectorContainer.GetInstance <IServiceRoot>().DoSomething();
         _simpleInjectorContainer.GetInstance <IServiceRoot>().DoSomething();
         _simpleInjectorContainer.GetInstance <IServiceRoot>().DoSomething();
         _simpleInjectorContainer.GetInstance <IServiceRoot>().DoSomething();
     }
 }
Пример #3
0
        public void Subscribe(EasyBus.Contracts.IMessageHandler handler)
        {
            bus = container.GetInstance <IRabbitBus>().Bus;
            // Get queue name.
            var queueName = handler.QueueName;
            var queue     = bus.Advanced.QueueDeclare(queueName);

            bus.Advanced.Consume <string>(queue, (msg, info) =>
            {
                try
                {
                    Process(handler, msg);
                }
                catch (Exception exc)
                {
                    HandleConsumerError(queue, exc);
                }
            });
        }
Пример #4
0
        public object Resolve(Type dependencyType)
        {
            Guard.AgainstNull(dependencyType, "dependencyType");

            try
            {
                return(_container.GetInstance(dependencyType));
            }
            catch (Exception ex)
            {
                throw new TypeResolutionException(ex.Message, ex);
            }
        }
Пример #5
0
 public T Get <T>()
 {
     return((T)_container.GetInstance(typeof(T)));
 }
Пример #6
0
        public void Emit <T>(T message) where T : IMessage
        {
            var publisher = container.GetInstance <IPublisher>();

            publisher.Publish(message);
        }
Пример #7
0
        static void Test()
        {
            var dry = new DryIoc.Container();

            dry.Register <IMetricSubmitter, EnrichMetricsDecorator>(
                setup: new DecoratorSetup(z =>
            {
                return(z.Parent.ImplementationType == typeof(SingleWorker));
            }, order: 0, useDecorateeReuse: false));
            dry.Register <IMetricSubmitter, DefaultMetricSubmitter>(Reuse.Singleton);
            dry.Register <SingleWorker>(Reuse.Singleton);
            dry.Register <ScopedWorker>(Reuse.Singleton);
            var worker = dry.Resolve <SingleWorker>();

            Console.WriteLine(worker);
            var worker2 = dry.Resolve <ScopedWorker>();

            Console.WriteLine(worker2);


            var container = new global::SimpleInjector.Container();

            container.Options.DefaultScopedLifestyle = new AsyncScopedLifestyle();

            container.ForConsumer <BConsumer>()
            .RegisterSingleton <AInterface, BImplementation>();

            container.ForConsumer <AConsumer>()
            .Register <AInterface, AImplementation>(Lifestyle.Singleton);

            container.RegisterSingleton <AConsumer>();

            container.RegisterDecorator(
                typeof(AInterface), typeof(AInterfaceDecorator), Lifestyle.Singleton,
                z =>
            {
                return(true);
            });
            container.RegisterDecorator(
                typeof(AInterface), typeof(BInterfaceDecorator), Lifestyle.Singleton,
                z =>
            {
                return(true);
            });


            container.Register <SingleWorker>(Lifestyle.Singleton);
            container.Register <ScopedWorker>(Lifestyle.Scoped);

            container.RegisterDecorator <IMetricSubmitter, EnrichMetricsDecorator>();
            container.RegisterConditional <IMetricSubmitter, ProxyMetricSubmitter>(
                Lifestyle.Singleton,
                z => z.Consumer.ImplementationType == typeof(SingleWorker));



            container.Verify();

            container.GetInstance <SingleWorker>();
            using (AsyncScopedLifestyle.BeginScope(container))
            {
                container.GetInstance <ScopedWorker>();
            }

            container.GetInstance <AConsumer>();
            container.GetInstance <AConsumer>();
            container.GetInstance <BConsumer>();
            container.GetInstance <BConsumer>();
        }