When building a service in C# I typically do something like this to register custom JSONConverters in my startup class:
public void ConfigureServices(IServiceCollection services)
{
var serializerSettings = CreateJsonSerializerSettings();
services
.AddControllers(opts =>
{
//add some filters
})
.AddNewtonsoftJson(options =>
{
options.SerializerSettings.ContractResolver = serializerSettings.ContractResolver;
options.SerializerSettings.Converters = serializerSettings.Converters;
})
private static JsonSerializerSettings CreateJsonSerializerSettings()
{
var settings = new JsonSerializerSettings() { ContractResolver = _someContractResolver};
settings.Converters.Add(comeCustomConverter.Instance);
return settings;
}
}
When I attempt to use the same approach in an azure function, the serializers don't seem to register:
services.AddMvcCore().AddNewtonsoftJson(options =>
{
options.SerializerSettings.ContractResolver = serializerSettings.ContractResolver;
options.SerializerSettings.Converters = serializerSettings.Converters;
}
);
I'm guessing that Azure Functions use their own special type of "middleware". What do I need to do to register my converters so that they show up when I'm trying to serialize/deserialize input?