Exemplo n.º 1
0
        public SimpleObjectBenchmarks()
        {
            var serviceContainer = new ServiceContainer();

            serviceContainer.Transients.AddType <IUserService, UserService1>();
            serviceContainer.Transients.AddType <IUserService, UserService2>();
            serviceContainer.Transients.AddType <IUserService, UserService>();
            serviceContainer.Transients.AddType(typeof(IRepository <>), typeof(Repository <>));
            serviceResolver = serviceContainer.Build();

            var serviceCollection = new ServiceCollection();

            serviceCollection.AddTransient <IUserService, UserService1>();
            serviceCollection.AddTransient <IUserService, UserService2>();
            serviceCollection.AddTransient <IUserService, UserService>();
            serviceCollection.AddTransient(typeof(IRepository <>), typeof(Repository <>));
            serviceProvider = serviceCollection.BuildServiceProvider();

            var containerBuilder = new ContainerBuilder();

            containerBuilder.RegisterType <UserService1>().As <IUserService>().InstancePerDependency();
            containerBuilder.RegisterType <UserService2>().As <IUserService>().InstancePerDependency();
            containerBuilder.RegisterGeneric(typeof(Repository <>)).As(typeof(IRepository <>));
            containerBuilder.RegisterType <UserService>().As <IUserService>().InstancePerDependency();
            autofacContainer = containerBuilder.Build();

            zkWebContainer = new ZKWebContainer();
            zkWebContainer.Register <IUserService, UserService1>(ReuseType.Transient, null);
            zkWebContainer.Register <IUserService, UserService2>(ReuseType.Transient, null);
            zkWebContainer.Register <IUserService, UserService>(ReuseType.Transient, null);
            zkWebContainer.Register(typeof(IRepository <>), typeof(Repository <>), ReuseType.Transient, null);

            dryIocContainer = new DryIocContainer();
            dryIocContainer.Register <IUserService, UserService1>();
            dryIocContainer.Register <IUserService, UserService2>();
            dryIocContainer.Register <IUserService, UserService>();
            dryIocContainer.Register(typeof(IRepository <>), typeof(Repository <>));
        }