Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix for ISO string modification during function metadata binding parsing #10735

Merged
merged 14 commits into from
Jan 24, 2025
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ namespace Microsoft.Azure.WebJobs.Script.Grpc
{
internal static class GrpcMessageConversionExtensions
{
private static readonly JsonSerializerSettings _datetimeSerializerSettings = Shared.JsonNetSerializerSettings.NoDateParsing;
private static readonly JsonSerializerSettings _datetimeSerializerSettings = JsonSerializers.NoDateParsingSettings;
private static readonly TypedData EmptyRpcHttp = new() { Http = new() };

public static object ToObject(this TypedData typedData) =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -291,7 +291,7 @@ private BindingMetadata CreateBindingMetadata(string binding)
using (StringReader stringReader = new StringReader(binding))
using (JsonTextReader jsonTextReader = new JsonTextReader(stringReader))
{
JObject parsedBinding = Shared.JsonNetSerializers.NoDateParsingSerializer.Deserialize<JObject>(jsonTextReader);
JObject parsedBinding = JsonSerializers.NoDateParsingSerializer.Deserialize<JObject>(jsonTextReader);

return BindingMetadata.Create(parsedBinding);
}
Expand Down
23 changes: 23 additions & 0 deletions src/WebJobs.Script/Serializers/JsonSerializers.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.

using Newtonsoft.Json;

namespace Microsoft.Azure.WebJobs.Script
{
internal static class JsonSerializers
{
/// <summary>
/// JsonSerializerSettings instance that disables date parsing.
/// </summary>
internal static readonly JsonSerializerSettings NoDateParsingSettings = new()
{
DateParseHandling = DateParseHandling.None
};

/// <summary>
/// JsonSerializer instance that disables date parsing.
/// </summary>
internal static readonly JsonSerializer NoDateParsingSerializer = JsonSerializer.Create(NoDateParsingSettings);
}
}
24 changes: 0 additions & 24 deletions src/WebJobs.Script/Shared.cs

This file was deleted.

Loading