public static IApplicationBuilder UseCoreRpc(this IApplicationBuilder builder, PathString path, Action <CoreRpcAspNetCoreConfiguration> configure = null) { var env = builder.ApplicationServices.GetRequiredService <IHostingEnvironment>(); var cfg = new CoreRpcAspNetCoreConfiguration() { RpcTypeResolver = () => RpcTypesResolver.GetRpcTypes(env) }; configure?.Invoke(cfg); var engine = new Engine(new JsonMethodCallSerializer(cfg.JsonSerializer), new DefaultMethodBinder()); var types = cfg.RpcTypeResolver(); var extractor = new AspNetCoreTargetNameExtractor(); var selector = new DefaultTargetSelector(new AspNetCoreTargetFactory(), extractor); foreach (var t in types) { selector.Register(extractor.GetTargetName(t), t); } return(builder.UseCoreRpc(path, engine.CreateRequestHandler(selector, new CallInterceptor(cfg.Interceptors)))); }
public static string GenerateCode(IHostingEnvironment env, Action <TypescriptGenerationOptions> configure = null) { return(GenerateCode(RpcTypesResolver.GetRpcTypes(env), configure)); }