Skip to content

Using JsonTypeInfo<object> with JsonSerializerContext configured throws error during serialization steps #87073

Closed
@captainsafia

Description

@captainsafia

Description

The ASP.NET framework derives a JsonTypeInfo<object> for use in the serialization of filter functions that can return any object type. When used in serialization with a JsonContext, the JsonTypeInfo<object> throws an unhandled exception to the user.

Reproduction Steps

using System.Text.Json.Serialization;

var builder = WebApplication.CreateBuilder(args);

builder.Services.ConfigureHttpJsonOptions(o => o.SerializerOptions.TypeInfoResolver = JsonContext.Default);

var app = builder.Build();

app.MapGet("/", () => "Hello World!")
    .AddEndpointFilter(async (c, n) => {
        var r = await n(c);
        return Results.Ok(new Todo("Test todo", false));
    });

app.Run();

public record Todo(string Name, bool IsCompleted);


[JsonSerializable(typeof(Todo))]
public partial class JsonContext : JsonSerializerContext
{ }

Expected behavior

Serialization of the payload to complete successfully.

Actual behavior

System.NotSupportedException: JsonTypeInfo metadata for type 'System.Object' was not provided by TypeInfoResolver of type 'Microsoft.AspNetCore.Http.G...

System.NotSupportedException
JsonTypeInfo metadata for type 'System.Object' was not provided by TypeInfoResolver of type 'Microsoft.AspNetCore.Http.Generators.Tests.SharedTestJsonContext'. If using source generation, ensure that all root types passed to the serializer have been annotated with 'JsonSerializableAttribute', along with any types that might be serialized polymorphically.

Regression?

No response

Known Workarounds

No response

Configuration

dotnet --info
.NET SDK:
 Version:   8.0.100-preview.5.23275.15
 Commit:    7a4252d678

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  13.3
 OS Platform: Darwin
 RID:         osx.13-arm64
 Base Path:   /Users/captainsafia/repos/2-aspnetcore/.dotnet/sdk/8.0.100-preview.5.23275.15/

.NET workloads installed:
There are no installed workloads to display.

Host:
  Version:      8.0.0-preview.6.23280.5
  Architecture: arm64
  Commit:       bf7fb2ecbf

.NET SDKs installed:
  6.0.116 [/Users/captainsafia/repos/2-aspnetcore/.dotnet/sdk]
  8.0.100-preview.3.23159.20 [/Users/captainsafia/repos/2-aspnetcore/.dotnet/sdk]
  8.0.100-preview.4.23176.5 [/Users/captainsafia/repos/2-aspnetcore/.dotnet/sdk]
  8.0.100-preview.5.23226.2 [/Users/captainsafia/repos/2-aspnetcore/.dotnet/sdk]
  8.0.100-preview.5.23257.1 [/Users/captainsafia/repos/2-aspnetcore/.dotnet/sdk]
  8.0.100-preview.5.23275.15 [/Users/captainsafia/repos/2-aspnetcore/.dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 6.0.16 [/Users/captainsafia/repos/2-aspnetcore/.dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 8.0.0-preview.3.23159.3 [/Users/captainsafia/repos/2-aspnetcore/.dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 8.0.0-preview.4.23174.2 [/Users/captainsafia/repos/2-aspnetcore/.dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 8.0.0-preview.4.23225.3 [/Users/captainsafia/repos/2-aspnetcore/.dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 8.0.0-preview.5.23252.26 [/Users/captainsafia/repos/2-aspnetcore/.dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 8.0.0-preview.5.23273.2 [/Users/captainsafia/repos/2-aspnetcore/.dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 6.0.16 [/Users/captainsafia/repos/2-aspnetcore/.dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.0-preview.3.23158.1 [/Users/captainsafia/repos/2-aspnetcore/.dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.0-preview.3.23159.4 [/Users/captainsafia/repos/2-aspnetcore/.dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.0-preview.4.23174.4 [/Users/captainsafia/repos/2-aspnetcore/.dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.0-preview.4.23206.2 [/Users/captainsafia/repos/2-aspnetcore/.dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.0-preview.4.23218.5 [/Users/captainsafia/repos/2-aspnetcore/.dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.0-preview.4.23225.9 [/Users/captainsafia/repos/2-aspnetcore/.dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.0-preview.5.23227.1 [/Users/captainsafia/repos/2-aspnetcore/.dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.0-preview.5.23251.1 [/Users/captainsafia/repos/2-aspnetcore/.dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.0-preview.5.23252.13 [/Users/captainsafia/repos/2-aspnetcore/.dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.0-preview.5.23271.5 [/Users/captainsafia/repos/2-aspnetcore/.dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.0-preview.5.23272.14 [/Users/captainsafia/repos/2-aspnetcore/.dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.0-preview.6.23279.6 [/Users/captainsafia/repos/2-aspnetcore/.dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.0-preview.6.23280.5 [/Users/captainsafia/repos/2-aspnetcore/.dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
  x64   [/usr/local/share/dotnet/x64]

Environment variables:
  DOTNET_ROOT       [/Users/captainsafia/repos/2-aspnetcore/.dotnet]

global.json file:
  /Users/captainsafia/repos/2-aspnetcore/global.json

Learn more:
  https://aka.ms/dotnet/info

Download .NET:
  https://aka.ms/dotnet/download

Other information

No response

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions