private static void AddMetadataService <TService>(this IFido2NetLibBuilder builder) where TService : class, IMetadataService { builder.Services.AddSingleton <TService>(); //Use factory method and concrete type registration so we can do the initialisation in here automatically builder.Services.AddSingleton <IMetadataService>(r => { var service = r.GetService <TService>(); service.Initialize().Wait(); return(service); }); }
public static void AddCachedMetadataService(this IFido2NetLibBuilder builder, Action <IFido2MetadataServiceBuilder> configAction) { builder.AddMetadataService <DistributedCacheMetadataService>(); configAction(new Fido2NetLibBuilder(builder.Services)); }
private static IFido2NetLibBuilder AddClient <TClient>(this IFido2NetLibBuilder builder) where TClient : class, IMetadataRepository { builder.Services.AddTransient <IMetadataRepository, TClient>(); return(builder); }