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)); }
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(); }
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); } }