public void ConfigureServices <T>(IServiceCollection services, IServerTransportOptions <T> serverTransportOptions) where T : class, IServerTransport, new() { if (serverTransportOptions.GetType() != typeof(HttpServerTransportOptions)) { throw new ArgumentException("Options has not supported type"); } services.AddSingleton(serverTransportOptions.GetType(), sp => serverTransportOptions); }
public static IServiceCollection AddSimpleRpcServer <T>( this IServiceCollection services, IServerTransportOptions <T> serverTransportOptions) where T : class, IServerTransport, new() { if (serverTransportOptions == null) { throw new ArgumentNullException(nameof(serverTransportOptions)); } var serverTransport = new T(); services.AddSingleton <IServerTransport>(serverTransport); serverTransport.ConfigureServices(services, serverTransportOptions); return(services); }