public JsonRpcServer(JsonRpcOptions options, JsonRpcRequestDelegate handler, ILogger <JsonRpcServer> logger) { _options = options ?? throw new ArgumentNullException(nameof(options)); _handler = handler ?? throw new ArgumentNullException(nameof(handler)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); Methods = options.Methods; Serializer = JsonSerializer.Create(_options.JsonSerializerSettings); }
public static void Run(this IJsonRpcHandlerBuilder builder, JsonRpcRequestDelegate handler) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (handler == null) { throw new ArgumentNullException(nameof(handler)); } builder.Use(_ => handler); }
public JsonRpcRequestDelegate Build() { JsonRpcRequestDelegate result = async(context) => { if (context.Method == null) { context.SetResponse(JsonRpcError.METHOD_NOT_FOUND); return; } await context.Method.InvokeAsync(context); }; foreach (var component in _components.Reverse()) { result = component(result); } return(result); }