Exemplo n.º 1
0
        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);
        }