private static void ConfigureServices(string[] args) { var containerBuilder = new ContainerBuilder(); containerBuilder.Register <ShareConfiguration>((c, p) => { var retVal = new ConfigurationBuilder() .SetBasePath(Environment.CurrentDirectory) .AddJsonFile("config.json") .Build() .Get <ShareConfiguration>(); return(retVal); }) .As <IShareConfiguration>() .SingleInstance(); containerBuilder.Register <TwilioConfig>((c, p) => { var config = new ConfigurationBuilder() .AddUserSecrets <TwilioConfig>() .Build(); var retVal = new TwilioConfig(); config.GetSection("TwilioConfig").Bind(retVal); retVal.Recipients.Add(new PhoneNumber("+1 (650) 868-3367")); return(retVal); }) .As <ITwilioConfig>() .SingleInstance(); containerBuilder.RegisterType <J4JSmsLoggerConfiguration>() .As <IJ4JSmsLoggerConfiguration>() .SingleInstance(); containerBuilder.Register <ILogger>((c, p) => { var appConfig = c.Resolve <IShareConfiguration>(); var j4jLoggerConfig = c.Resolve <IJ4JSmsLoggerConfiguration>(); return(new LoggerConfiguration() .Enrich.FromLogContext() .WriteTo.Console( restrictedToMinimumLevel: appConfig.MinLogLevel ) .WriteTo.File( path: J4JLoggingExtensions.DefineLocalAppDataLogPath("log.txt"), restrictedToMinimumLevel: appConfig.MinLogLevel ) .WriteTo.TextWriter( textWriter: j4jLoggerConfig.SmsWriter, restrictedToMinimumLevel: appConfig.MinLogLevel ) .CreateLogger()); }); containerBuilder.RegisterType <J4JTwilio>() .As <IJ4JSms>() .SingleInstance(); containerBuilder.RegisterGeneric(typeof(J4JSmsLogger <>)) .As(typeof(IJ4JSmsLogger <>)) .As(typeof(IJ4JLogger <>)) .SingleInstance(); containerBuilder.RegisterModule <FileHistoryModule>(); containerBuilder.RegisterModule <FileHistoryShareTargetModule>(); var container = containerBuilder.Build(); _svcProvider = new AutofacServiceProvider(container); }
private static AutofacServiceProvider ConfigureContainer() { var builder = new ContainerBuilder(); builder.RegisterType <J4JLoggerConfiguration>() .As <IJ4JLoggerConfiguration>() .SingleInstance(); builder.Register <ILogger>((c, p) => new LoggerConfiguration() .Enrich.FromLogContext() .SetMinimumLevel(LogEventLevel.Error) .WriteTo.Console(restrictedToMinimumLevel: LogEventLevel.Error) .WriteTo.File( path: J4JLoggingExtensions.DefineExeLogPath("log.txt"), restrictedToMinimumLevel: LogEventLevel.Error ) .CreateLogger()) .SingleInstance(); builder.RegisterGeneric(typeof(J4JLogger <>)) .As(typeof(IJ4JLogger <>)) .SingleInstance(); builder.RegisterType <ProjectAssets>() .AsSelf(); builder.RegisterType <TargetInfo>() .AsSelf(); builder.RegisterType <ReferenceInfo>() .AsSelf(); builder.RegisterType <DependencyInfo>() .AsSelf(); builder.RegisterType <RestrictedDependencyInfo>() .AsSelf(); builder.RegisterType <LibraryInfo>() .AsSelf(); builder.RegisterType <ProjectFileDependencyGroup>() .AsSelf(); builder.RegisterType <ProjectInfo>() .AsSelf(); builder.RegisterType <RestoreInfo>() .AsSelf(); builder.RegisterType <FrameworkReferences>() .AsSelf(); builder.RegisterType <WarningProperty>() .AsSelf(); builder.RegisterType <ProjectReference>() .AsSelf(); builder.RegisterType <JsonProjectAssetsConverter>() .AsSelf(); builder.RegisterType <TypedListCreator>() .As <ITypedListCreator>(); return(new AutofacServiceProvider(builder.Build())); }