From 465d0c8d15820c95fd8fc927eacf59df9c338f1a Mon Sep 17 00:00:00 2001 From: SteveSandersonMS Date: Wed, 7 Sep 2016 17:11:57 +0100 Subject: [PATCH] Design review: Explicitly disable TypeNameHandling in all Json.NET usage --- .../HostingModels/HttpNodeInstance.cs | 9 +++++---- .../HostingModels/SocketNodeInstance.cs | 3 ++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/Microsoft.AspNetCore.NodeServices/HostingModels/HttpNodeInstance.cs b/src/Microsoft.AspNetCore.NodeServices/HostingModels/HttpNodeInstance.cs index 9fd72a4..0ab2782 100644 --- a/src/Microsoft.AspNetCore.NodeServices/HostingModels/HttpNodeInstance.cs +++ b/src/Microsoft.AspNetCore.NodeServices/HostingModels/HttpNodeInstance.cs @@ -25,9 +25,10 @@ namespace Microsoft.AspNetCore.NodeServices.HostingModels private static readonly Regex PortMessageRegex = new Regex(@"^\[Microsoft.AspNetCore.NodeServices.HttpNodeHost:Listening on port (\d+)\]$"); - private static readonly JsonSerializerSettings JsonSerializerSettings = new JsonSerializerSettings + private static readonly JsonSerializerSettings jsonSerializerSettings = new JsonSerializerSettings { - ContractResolver = new CamelCasePropertyNamesContractResolver() + ContractResolver = new CamelCasePropertyNamesContractResolver(), + TypeNameHandling = TypeNameHandling.None }; private readonly HttpClient _client; @@ -58,7 +59,7 @@ namespace Microsoft.AspNetCore.NodeServices.HostingModels protected override async Task InvokeExportAsync(NodeInvocationInfo invocationInfo) { - var payloadJson = JsonConvert.SerializeObject(invocationInfo, JsonSerializerSettings); + var payloadJson = JsonConvert.SerializeObject(invocationInfo, jsonSerializerSettings); var payload = new StringContent(payloadJson, Encoding.UTF8, "application/json"); var response = await _client.PostAsync("http://localhost:" + _portNumber, payload); @@ -85,7 +86,7 @@ namespace Microsoft.AspNetCore.NodeServices.HostingModels case "application/json": var responseJson = await response.Content.ReadAsStringAsync(); - return JsonConvert.DeserializeObject(responseJson); + return JsonConvert.DeserializeObject(responseJson, jsonSerializerSettings); case "application/octet-stream": // Streamed responses have to be received as System.IO.Stream instances diff --git a/src/Microsoft.AspNetCore.NodeServices/HostingModels/SocketNodeInstance.cs b/src/Microsoft.AspNetCore.NodeServices/HostingModels/SocketNodeInstance.cs index 1a1c74e..2acfb78 100644 --- a/src/Microsoft.AspNetCore.NodeServices/HostingModels/SocketNodeInstance.cs +++ b/src/Microsoft.AspNetCore.NodeServices/HostingModels/SocketNodeInstance.cs @@ -29,7 +29,8 @@ namespace Microsoft.AspNetCore.NodeServices.HostingModels { private readonly static JsonSerializerSettings jsonSerializerSettings = new JsonSerializerSettings { - ContractResolver = new CamelCasePropertyNamesContractResolver() + ContractResolver = new CamelCasePropertyNamesContractResolver(), + TypeNameHandling = TypeNameHandling.None }; private readonly SemaphoreSlim _connectionCreationSemaphore = new SemaphoreSlim(1);