public void InjectOptions() { foreach (var optionsType in RootKwikOptions.OptionsTypes) { if (RootKwikOptions.LoadExternalAssemblies) { AssemblyUtilities.LoadAssemblyIfNotLoaded(optionsType.Assembly); } try { MethodInfo method = typeof(OptionsConfigurationServiceCollectionExtensions).GetMethod( "Configure", BindingFlags.Static | BindingFlags.Public, null, new[] { typeof(IServiceCollection), typeof(IConfigurationSection) }, null); MethodInfo generic = method.MakeGenericMethod(Type.GetType(optionsType.Type)); generic.Invoke(null, new object[] { Services, Configuration.GetSection(optionsType.OptionsPath) }); } catch (Exception) { } } }
public void InjectOptions() { var rootKwikOptions = new RootKwikOptions(); Configuration.GetSection(ConfigPath).Bind(rootKwikOptions); foreach (var optionsProvider in rootKwikOptions.OptionsProviders) { AssemblyUtilities.LoadAssemblyIfNotLoaded(optionsProvider.Assembly); Type optionsType = Type.GetType(optionsProvider.Type); var providerInstance = (IOptionsProvider)ActivatorUtilities .CreateInstance(ServiceCollection.BuildServiceProvider(), optionsType); providerInstance .ConfigureOption( ServiceCollection, Configuration.GetSection(optionsProvider.OptionsPath)); } }