Available starting with v1.8.0
By default, each response is serialized using Json.Net and serialization settings (JsonSerializerSettings
) are determined by the requested response casing. If the requested casing is camel casing, the default, the folowing serialization settings are applied to the response:
var settings = new JsonSerializerOptions()
{
// System.Text.Json requires both properties to be
// set to properly format serialized responses
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
DictionaryKeyPolicy = JsonNamingPolicy.CamelCase
};
If the requested case is pascal, the following settings are applied:
var settings = new JsonSerializerOptions();
It's possible to customize the response serialization settings on a case-by-case using the following configuration:
public void ConfigureServices(IServiceCollection services)
{
services.AddRouting();
services.AddViewModelComposition(options =>
{
options.ResponseSerialization.UseCustomJsonSerializerSettings(_ =>
{
return new JsonSerializerOptions()
{
// customize options as needed
};
});
});
}
Each time ServiceComposer needs to serialize a response it'll invoke the supplied function.
Note
When customizing the serialization settings, it's responsibility of the function to configure the correct resolver for the requested casing