ASP.NET MVC 5 Custom System.text.json Json Deserializer для одной конечной точкиC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 ASP.NET MVC 5 Custom System.text.json Json Deserializer для одной конечной точки

Сообщение Anonymous »

У меня есть приложение ASP.NET MVC 5 с конечной точкой, которая получает большую полезную нагрузку JSON, которая не может быть опустошена с помощью запрос JSON был слишком большим, чтобы быть детериализованной < /em>.
Я знаю, что могу просто увеличить значение настройки 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
}
}
Но fooconverter никогда не достигается. Есть ли что -нибудь еще, что мне нужно сделать для использования конвертера? Или есть лучший способ сделать это? Похоже, в Интернете есть всевозможные ответы, но ни один из них не работает для конкретных версий, которые у меня есть.

Подробнее здесь: https://stackoverflow.com/questions/794 ... e-endpoint
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»