C
Join ServerC#
help
✅ How do I add a JsonConverter subclass to a .NET 7 WebApplication?
HHugh12/22/2022
I've written a couple of custom JsonConverter classes, and I've been able to get them in place for manual Json serialization/deserialization. However, I haven't managed to get them to be applied when using a Web Application and a class with the
I'm currently setting it up like this:
where
However,
Any idea what I'm doing wrong here?
Thanks
[ApiController]
attribute.I'm currently setting it up like this:
WebApplicationBuilder builder = WebApplication.CreateBuilder();
builder.Services.Configure<JsonOptions>(options =>
{
RegisterCustomConverters(options.SerializerOptions);
options.SerializerOptions.PropertyNameCaseInsensitive = true;
});
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Logging.ClearProviders();
builder.Logging.AddConsole();
WebApplication app = builder.Build();
where
RegisterCustomConverters()
is:public static void RegisterConverters(JsonSerializerOptions serializerOptions)
{
serializerOptions.Converters.Add(new CustomConverter1());
serializerOptions.Converters.Add(new CustomConverter2());
}
However,
RegisterConverters()
is never called, and when I sent a post request, it isn't deserialized using the custom converter.Any idea what I'm doing wrong here?
Thanks
HHugh12/22/2022
Ah, I appear to have fixed it by changing it to:
builder.Services.AddControllers()
.AddJsonOptions(options =>
{
SWJsonConverters.RegisterConverters(options.JsonSerializerOptions);
options.JsonSerializerOptions.PropertyNameCaseInsensitive = true;
});