private static IJsonRpcServiceHost BuildServiceHost(TextWriter logWriter, IJsonRpcContractResolver contractResolver, bool debugMode) { var loggerFactory = new LoggerFactory(); loggerFactory.AddProvider(new DebugLoggerProvider(null)); var builder = new JsonRpcServiceHostBuilder { ContractResolver = contractResolver, LoggerFactory = loggerFactory }; builder.UseCancellationHandling(); builder.Register(typeof(Program).GetTypeInfo().Assembly); if (debugMode) { // Log all the client-to-server calls. builder.Intercept(async(context, next) => { lock (logWriter) { logWriter.WriteLine("> {0}", context.Request); } await next(); lock (logWriter) { logWriter.WriteLine("< {0}", context.Response); } }); } return(builder.Build()); }
private static IJsonRpcServiceHost BuildServiceHost(TextWriter logWriter, IJsonRpcContractResolver contractResolver, bool debugMode) { var loggerFactory = LoggerFactory.Create(builder => builder.AddDebug()); if (debugMode) { loggerFactory.AddFile("logs-" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".log"); } var builder = new JsonRpcServiceHostBuilder { ContractResolver = contractResolver, LoggerFactory = loggerFactory }; builder.UseCancellationHandling(); builder.Register(typeof(Program).GetTypeInfo().Assembly); if (debugMode) { // Log all the client-to-server calls. builder.Intercept(async(context, next) => { lock (logWriter) logWriter.WriteLine("{0} > {1}", Utility.GetTimeStamp(), context.Request); await next(); lock (logWriter) logWriter.WriteLine("{0} < {1}", Utility.GetTimeStamp(), context.Response); }); } return(builder.Build()); }
public LanguageServerSession(JsonRpcClient rpcClient, IJsonRpcContractResolver contractResolver) { Check.ArgumentNull(nameof(rpcClient), rpcClient); RpcClient = rpcClient; var builder = new JsonRpcProxyBuilder { ContractResolver = contractResolver }; Client = new ClientProxy(builder, rpcClient); }
public LanguageServerSession(JsonRpcClient rpcClient, IJsonRpcContractResolver contractResolver) { RpcClient = rpcClient ?? throw new ArgumentNullException(nameof(rpcClient)); var builder = new JsonRpcProxyBuilder { ContractResolver = contractResolver }; Client = new ClientProxy(builder, rpcClient); Documents = new ConcurrentDictionary <Uri, SessionDocument>(); DiagnosticProvider = new DiagnosticProvider(); }
/// <summary>Initializes a new instance of the <see cref="JsonRpcSerializer" /> class.</summary> /// <param name="contractResolver">The JSON-RPC message contract resolver instance.</param> /// <param name="jsonSerializer">The JSON serializer instance.</param> /// <param name="compatibilityLevel">The JSON-RPC protocol compatibility level.</param> public JsonRpcSerializer(IJsonRpcContractResolver contractResolver = null, JsonSerializer jsonSerializer = null, JsonRpcCompatibilityLevel compatibilityLevel = default) { _contractResolver = contractResolver; _jsonSerializer = jsonSerializer ?? JsonSerializer.CreateDefault(_jsonSerializerSettings); _compatibilityLevel = compatibilityLevel; }