123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- using JsonRPC4.Common.Tools;
- using JsonRPC4.Router;
- using JsonRPC4.Router.Abstractions;
- using Microsoft.Extensions.DependencyInjection;
- using Microsoft.Extensions.Options;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Threading.Tasks;
- namespace JsonRPC4.Builder
- {
- public static class RpcBuilderExtensions
- {
- public static IRpcBuilder WithOptions(this IRpcBuilder builder, Action<RpcServerConfiguration> configureOptions)
- {
- RpcServerConfiguration obj = new RpcServerConfiguration();
- configureOptions?.Invoke(obj);
- builder.Services.Configure(configureOptions);
- return builder;
- }
- public static IRpcBuilder WithOptions(this IRpcBuilder builder, RpcServerConfiguration configuration)
- {
- builder.Services.AddSingleton(Options.Create(configuration));
- return builder;
- }
- public static IRpcBuilder WithParser<T>(this IRpcBuilder builder) where T : class, IRpcParser
- {
- builder.Services.AddScoped<IRpcParser, T>();
- return builder;
- }
- public static IRpcBuilder WithCompressor<T>(this IRpcBuilder builder) where T : class, IStreamCompressor
- {
- builder.Services.AddScoped<IStreamCompressor, T>();
- return builder;
- }
- public static IRpcBuilder WithReponseSerializer<T>(this IRpcBuilder builder) where T : class, IRpcResponseSerializer
- {
- builder.Services.AddScoped<IRpcResponseSerializer, T>();
- return builder;
- }
- public static IRpcBuilder WithRequestMatcher<T>(this IRpcBuilder builder) where T : class, IRpcRequestMatcher
- {
- builder.Services.AddScoped<IRpcRequestMatcher, T>();
- return builder;
- }
- }
- }
|