System.Text.Json: получите имя свойства в пользовательском конвертере.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 System.Text.Json: получите имя свойства в пользовательском конвертере.

Сообщение Anonymous »

Десериализация с использованием JsonSerialize.DeserializeAsync и специального преобразователя, например

Код: Выделить всё

public class MyStringJsonConverter : JsonConverter
{
public override string Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
return reader.GetString();
}

public override void Write(Utf8JsonWriter writer, string value, JsonSerializerOptions options)
{
throw new NotImplementedException();
}
}
Здесь я бы получил все строковые свойства, что вполне нормально, хотя есть ли способ проверить имя свойства на наличие заданного значения , например что-то вроде этого, где обрабатывать только свойство Body:

Код: Выделить всё

class MyMailContent
{
public string Name { get; set; }
public string Subject { get; set; }
public string Body { get; set; }
}

public class MyStringJsonConverter : JsonConverter
{
public override string Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
if (reader.PropertyName.Equals("Body"))
{
var s = reader.GetString();
//do some process with the string value
return s;
}

return reader.GetString();
}
}
Или есть ли другой способ выделить данное свойство?
Обратите внимание: я ищу решение, используя System.Text .Json.

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

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

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

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

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

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

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