/// <summary> /// Extension method to use the JsonRpc router in the Asp.Net pipeline /// </summary> /// <param name="app"><see cref="IApplicationBuilder"/> that is supplied by Asp.Net</param> /// <param name="options">Auto routing configuration</param> /// <returns><see cref="IApplicationBuilder"/> that includes the Basic auth middleware</returns> public static IApplicationBuilder UseJsonRpc(this IApplicationBuilder app, RpcAutoRoutingOptions options) { if (app == null) { throw new ArgumentNullException(nameof(app)); } if (options == null) { throw new ArgumentNullException(nameof(options)); } IRpcRouteProvider routeProvider = new RpcAutoRouteProvider(Options.Create(options)); return(app.UseJsonRpc(routeProvider)); }
/// <summary> /// Extension method to use the JsonRpc router in the Asp.Net pipeline /// </summary> /// <param name="app"><see cref="IApplicationBuilder"/> that is supplied by Asp.Net</param> /// <param name="configureOptions">Optional action to configure auto routing</param> /// <returns><see cref="IApplicationBuilder"/> that includes the Basic auth middleware</returns> public static IApplicationBuilder UseJsonRpc(this IApplicationBuilder app, Action <RpcAutoRoutingOptions> configureOptions = null) { if (app == null) { throw new ArgumentNullException(nameof(app)); } var options = new RpcAutoRoutingOptions(); configureOptions?.Invoke(options); IRpcRouteProvider routeProvider = new RpcAutoRouteProvider(Options.Create(options)); return(app.UseJsonRpc(routeProvider)); }
/// <summary> /// Extension method to use the JsonRpc router in the Asp.Net pipeline /// </summary> /// <param name="app"><see cref="IApplicationBuilder"/> that is supplied by Asp.Net</param> /// <param name="configureOptions">Action to configure auto route provider options</param> /// <returns><see cref="IApplicationBuilder"/> that includes the Basic auth middleware</returns> public static IApplicationBuilder UseJsonRpc(this IApplicationBuilder app, Action <RpcAutoRoutingOptions> configureOptions = null) { if (app == null) { throw new ArgumentNullException(nameof(app)); } var options = new RpcAutoRoutingOptions(); configureOptions?.Invoke(options); IRpcRouteProvider routeProvider = new RpcAutoRouteProvider(options); RpcRouter router = ActivatorUtilities.CreateInstance <RpcRouter>(app.ApplicationServices, routeProvider); return(app.UseRouter(router)); }
public static async Task RunInvokerAsync() { var authorizationService = new FakeAuthorizationService(); var policyProvider = new FakePolicyProvider(); var logger = new FakeLogger(); var options = Options.Create(new RpcServerConfiguration()); var rpcRequestMatcher = new FakeRequestMatcher(); var invoker = new DefaultRpcInvoker(authorizationService, policyProvider, logger, options, rpcRequestMatcher); var request = new RpcRequest("Ping"); const string path = "Test"; var routingOptions = new RpcAutoRoutingOptions(); var routeProvider = new RpcAutoRouteProvider(Options.Create(routingOptions)); var user = new ClaimsPrincipal(); IServiceProvider serviceProvider = null; var routeContext = new DefaultRouteContext(serviceProvider, user, routeProvider); for (int i = 0; i < 10_000_000; i++) { await invoker.InvokeRequestAsync(request, path, routeContext); } }
public RpcAutoRouteProvider(RpcAutoRoutingOptions options) { this.Options = options ?? throw new ArgumentNullException(nameof(options)); }