public static IServiceCollection AddComponents(this IServiceCollection services) { services.AddDomApi(); services.AddWindowApi(); var iconOptions = new IconProviderOptions(); iconOptions.AddDefaultIcons(); // Add default "IIconProvider" service to prevent exceptions if the user doesn't manually call "AddIconProvider" services.TryAddSingleton <IIconProvider>(new IconProvider(iconOptions)); return(services); }
public static IServiceCollection AddIconProvider(this IServiceCollection services, Action <IconProviderOptions>?configure) { var options = new IconProviderOptions(); options.AddDefaultIcons(); // Invoke configuration action configure?.Invoke(options); var alreadyExists = services.Any(x => x.ServiceType == typeof(IIconProvider)); if (alreadyExists) { return(services.Replace( new ServiceDescriptor(typeof(IIconProvider), new IconProvider(options)))); } else { return(services.AddSingleton <IIconProvider>( new IconProvider(options))); } }