Хотя я нашел множество подходов к десериализации определенных свойств, не допуская их сериализации, я ищу противоположное поведение.
Я нашел много вопросов, спрашивающих обратный:
Создание десериализации свойств, но не сериализация с помощью json.net
Могу ли я дать Json.NET возможность десериализации, но не сериализации, конкретных свойств?
JSON.Net - используйте JsonIgnoreAttribute только для сериализации (но не при десериализации)
Как я могу сериализовать определенное свойство, но предотвратить его десериализацию обратно в POCO? Есть ли атрибут, который я могу использовать для украшения конкретного свойства?
В основном я ищу эквивалент методам ShouldSerialize * для десериализации.
Я знаю, что могу написать собственный конвертер, но для этого это кажется излишним.
Edit:
Здесь немного больше контекста. Причина этого заключается в том, что мой класс выглядит следующим образом:
public class Address : IAddress
{
/// <summary>
/// Gets or sets the two character country code
/// </summary>
[JsonProperty("countryCode")]
[Required]
public string CountryCode { get; set; }
/// <summary>
/// Gets or sets the country code, and province or state code delimited by a vertical pipe: <c>US|MI</c>
/// </summary>
[JsonProperty("countryProvinceState")]
public string CountryProvinceState
{
get
{
return string.Format("{0}|{1}", this.CountryCode, this.ProvinceState);
}
set
{
if (!string.IsNullOrWhiteSpace(value) && value.Contains("|"))
{
string[] valueParts = value.Split('|');
if (valueParts.Length == 2)
{
this.CountryCode = valueParts[0];
this.ProvinceState = valueParts[1];
}
}
}
}
[JsonProperty("provinceState")]
[Required]
public string ProvinceState { get; set; }
}
Мне нужно свойство CountryProvinceState
для запроса, но я не хочу, чтобы он десериализовался и запускал логику setter.