Я знаю, что могу просто увеличить значение настройки aspnet: maxjsondeserializermembers , и это будет работать нормально, однако это влияет на все приложение, и это не то, что мы хотим делать в нашей производственной среде. Поэтому я подумал, что просто напишу пользовательский сериализатор, который можно использовать только в этой конечной точке, которая может иметь более высокий предел, и, поскольку я нахожусь в нем, используйте System.json.json, поскольку он предположительно быстрее. Поэтому я добавил конвертер (который будет иметь поведение по умолчанию): < /p>
Код: Выделить всё
public class FooConverter : System.Text.Json.Serialization.JsonConverter
{
public override Foo Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) =>
throw new NotImplementedException();
public override void Write(Utf8JsonWriter writer, Foo value, JsonSerializerOptions options) =>
throw new NotImplementedException();
}
< /code>
Тогда украсил объект полезной нагрузки следующим образом: < /p>
[System.Text.Json.Serialization.JsonConverter(typeof(FooConverter))]
public class Foo
{
public int Foo1 { get; set; }
public string Foo2 { get; set; }
}
< /code>
, а затем вызовите следующую конечную точку: < /p>
[Route("whatever"), HttpPost]
public ActionResult Bar(Foo payload)
{
try
{
//do stuff
}
catch (Exception e)
{
//handle error
}
}
Подробнее здесь: https://stackoverflow.com/questions/794 ... e-endpoint