public static IEnumerable <IServiceDescriptor> GetDefaultServices(IConfiguration configuration) { var describer = new ServiceDescriber(configuration); yield return(describer.Transient <IHostingEngine, HostingEngine>()); yield return(describer.Transient <IServerManager, ServerManager>()); yield return(describer.Transient <IStartupManager, StartupManager>()); yield return(describer.Transient <IStartupLoaderProvider, StartupLoaderProvider>()); yield return(describer.Transient <IApplicationBuilderFactory, ApplicationBuilderFactory>()); yield return(describer.Transient <IHttpContextFactory, HttpContextFactory>()); yield return(describer.Singleton <ITypeActivator, TypeActivator>()); yield return(describer.Instance <IApplicationLifetime>(new ApplicationLifetime())); // TODO: Do we expect this to be provide by the runtime eventually? yield return(describer.Singleton <ILoggerFactory, LoggerFactory>()); yield return(describer.Scoped(typeof(IContextAccessor <>), typeof(ContextAccessor <>))); foreach (var service in OptionsServices.GetDefaultServices()) { yield return(service); } foreach (var service in DataProtectionServices.GetDefaultServices()) { yield return(service); } }
public static MySafe InitProtection() { var serviceCollection = new ServiceCollection(); serviceCollection.AddOptions(); DataProtectionServices.GetDefaultServices(); serviceCollection.AddDataProtection(config => { config.PersistKeysToFileSystem(new DirectoryInfo(".")) .SetDefaultKeyLifetime(TimeSpan.FromDays(20)) .ProtectKeysWithDpapi(); }); IServiceProvider services = serviceCollection.BuildServiceProvider(); return(ActivatorUtilities.CreateInstance <MySafe>(services)); }