示例#1
0
        static void Main(string[] args)
        {
            var builder = new ContainerBuilder();

            builder.RegisterType <TwitterService>().As <ITwitterService>();
            builder.RegisterType <TwitterRepository>().As <ITwitterRepository>();
            builder.RegisterType <TextFile>().As <ITextFIle>();
            builder.RegisterType <DalUsers>().As <IDalUsers>();
            builder.RegisterType <DalTweets>().As <IDalTweets>();
            builder.RegisterType <Report>().As <IReport>();
            builder.RegisterType <Writer>().As <IWriter>();
            builder.RegisterType <TweetProcess>().As <ITweetProcess>();
            Container = builder.Build();

            using (var scope = Container.BeginLifetimeScope())
            {
                try
                {
                    var twitterService = scope.Resolve <ITwitterService>();
                    twitterService.PrintReport();
                }
                catch (Exception e)
                {
                    Logger.Error(e);
                }
            }
        }
        public static AutofacServiceProvider Configure(this IServiceCollection services, string connectionString, IConfigurationRoot configuration)
        {
            services.AddDbContext <MyContext>(options => options.UseSqlServer(connectionString));
            //FluentValidation后台验证
            services.AddTransient(typeof(IBaseRepository <>), typeof(BaseRepository <>));
            services.AddMvc(options =>
            {
                options.Filters.Add(typeof(ProjectExceptionFilter)); // 异常过滤器

                //}).AddFluentValidation(fv =>
                //{
                //    //关闭或开启自带的验证  AddFluentValidation使用FluentValidation验证
                //    fv.ConfigureClientsideValidation(enabled: true);
            });
            //通过反射进行依赖注入

            //通过反射进行依赖注入不能为空
            services.RegisterAssembly("ProjectCore.Domain.Repository.Interfaces", "ProjectCore.Infrastructure.Repository");
            services.RegisterAssembly("ProjectCore.Application");
            services.RegisterAssembly("ProjectCore.Domain.DomainService", "ProjectCore.Infrastructure.DomainService");
            //Autofac依赖注入 Class的后面名字必须一致才能注入
            var builder = new ContainerBuilder();

            builder.Populate(services);
            var module = new ConfigurationModule(configuration);

            builder.RegisterModule(module);
            Container = builder.Build();
            return(new AutofacServiceProvider(Container));
        }
示例#3
0
        protected void Initialize()
        {
            ContainerBuilder = new ContainerBuilder();

            ContainerBuilder.RegisterType <INGTransferHandle>().As <TransferHandle>();
            ContainerBuilder.RegisterType <TransferMoney>().As <TransferMoney>();
            ContainerBuilder.RegisterType <IngLogTransfer>().As <ILogTransfers>();

            //builder.RegisterType<OnlineState>().Keyed<IDeviceState>(DeviceState.Online);
            //builder.RegisterType<OfflineState>().Keyed<IDeviceState>(DeviceState.Offline);

            Autofac.IContainer container = ContainerBuilder.Build();

            Scope = container.BeginLifetimeScope();
        }
示例#4
0
        protected override void OnStart(string[] args)
        {
            base.OnStart(args);

            _iocContainer = AutofacConfig.Init();

            IStartService[] servicesToRun =
            {
                _iocContainer.Resolve <TosterParseService>(),
                _iocContainer.Resolve <StackoverflowParseService>(),
            };

            foreach (var serviceBase in servicesToRun)
            {
                serviceBase.Start(args);
            }
        }