Skip to content

Commit f47b5f4

Browse files
committed
Set default JSON type resolver if not set
1 parent bad8559 commit f47b5f4

7 files changed

+17
-0
lines changed

src/Http/Http.Extensions/src/Microsoft.AspNetCore.Http.Extensions.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
<Compile Include="$(SharedSourceRoot)ProblemDetails\ProblemDetailsDefaults.cs" LinkBase="Shared" />
2424
<Compile Include="$(SharedSourceRoot)ValueStringBuilder\**\*.cs" LinkBase="Shared" />
2525
<Compile Include="$(SharedSourceRoot)Json\JsonSerializerExtensions.cs" LinkBase="Shared" />
26+
<Compile Include="$(SharedSourceRoot)Json\EmptyJsonTypeInfoResolver.cs" LinkBase="Shared" />
2627
<Compile Include="$(SharedSourceRoot)RouteHandlers\ExecuteHandlerHelper.cs" LinkBase="Shared" />
2728
<Compile Include="$(RepoRoot)src\Components\Endpoints\src\FormMapping\**\*.cs" LinkBase="SharedFormMapping" />
2829
<EmbeddedResource Include="$(RepoRoot)src\Components\Endpoints\src\FormMapping\**\*.resx" LinkBase="SharedFormMapping">

src/Http/Http.Results/src/Microsoft.AspNetCore.Http.Results.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
<Compile Include="$(SharedSourceRoot)ProblemDetails\ProblemDetailsDefaults.cs" LinkBase="Shared" />
2020
<Compile Include="$(SharedSourceRoot)ApiExplorerTypes\*.cs" LinkBase="Shared" />
2121
<Compile Include="$(SharedSourceRoot)Json\JsonSerializerExtensions.cs" LinkBase="Shared"/>
22+
<Compile Include="$(SharedSourceRoot)Json\EmptyJsonTypeInfoResolver.cs" LinkBase="Shared" />
2223
<Compile Include="$(SharedSourceRoot)RouteValueDictionaryTrimmerWarning.cs" LinkBase="Shared" />
2324
</ItemGroup>
2425

src/Http/Routing/src/Microsoft.AspNetCore.Routing.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
<Compile Include="$(SharedSourceRoot)MediaType\ReadOnlyMediaTypeHeaderValue.cs" LinkBase="Shared" />
3131
<Compile Include="$(SharedSourceRoot)ApiExplorerTypes\*.cs" LinkBase="Shared" />
3232
<Compile Include="$(SharedSourceRoot)Json\JsonSerializerExtensions.cs" LinkBase="Shared"/>
33+
<Compile Include="$(SharedSourceRoot)Json\EmptyJsonTypeInfoResolver.cs" LinkBase="Shared" />
3334
<Compile Include="$(SharedSourceRoot)RouteHandlers\ExecuteHandlerHelper.cs" LinkBase="Shared"/>
3435
<Compile Include="$(SharedSourceRoot)RouteValueDictionaryTrimmerWarning.cs" LinkBase="Shared" />
3536
<Compile Include="$(SharedSourceRoot)HttpRuleParser.cs" LinkBase="Shared" />

src/Mvc/Mvc.Core/src/Formatters/SystemTextJsonOutputFormatter.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public SystemTextJsonOutputFormatter(JsonSerializerOptions jsonSerializerOptions
2323
{
2424
SerializerOptions = jsonSerializerOptions;
2525

26+
jsonSerializerOptions.TypeInfoResolver ??= new EmptyJsonTypeInfoResolver();
2627
jsonSerializerOptions.MakeReadOnly();
2728

2829
SupportedEncodings.Add(Encoding.UTF8);

src/Mvc/Mvc.Core/src/Microsoft.AspNetCore.Mvc.Core.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ Microsoft.AspNetCore.Mvc.RouteAttribute</Description>
3434
<Compile Include="$(SharedSourceRoot)HttpParseResult.cs" LinkBase="Shared" />
3535
<Compile Include="$(SharedSourceRoot)HttpRuleParser.cs" LinkBase="Shared" />
3636
<Compile Include="$(SharedSourceRoot)Json\JsonSerializerExtensions.cs" LinkBase="Shared" />
37+
<Compile Include="$(SharedSourceRoot)Json\EmptyJsonTypeInfoResolver.cs" LinkBase="Shared" />
3738
</ItemGroup>
3839

3940
<ItemGroup>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
4+
using System.Text.Json;
5+
using System.Text.Json.Serialization.Metadata;
6+
7+
internal sealed class EmptyJsonTypeInfoResolver : IJsonTypeInfoResolver
8+
{
9+
/// <inheritdoc />
10+
public JsonTypeInfo? GetTypeInfo(Type type, JsonSerializerOptions options) => null;
11+
}

src/Shared/Json/JsonSerializerExtensions.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public static bool ShouldUseWith(this JsonTypeInfo jsonTypeInfo, [NotNullWhen(fa
1818

1919
public static JsonTypeInfo GetReadOnlyTypeInfo(this JsonSerializerOptions options, Type type)
2020
{
21+
options.TypeInfoResolver ??= new EmptyJsonTypeInfoResolver();
2122
options.MakeReadOnly();
2223
return options.GetTypeInfo(type);
2324
}

0 commit comments

Comments
 (0)