Как заставить Newtonsoft Json сериализовать все свойства? (Странное поведение со свойством «Указано»)
Товарищи программисты, я столкнулся со странным поведением в Newtonsoft.Json.
Когда я пытаюсь сериализовать объект, похожий на этот:
public class DMSDocWorkflowI
{
[JsonProperty("DMSDocWorkflowIResult")]
public bool DMSDocWorkflowIResult { get; set; }
[JsonProperty("DMSDocWorkflowIResultSpecified")]
public bool DMSDocWorkflowIResultSpecified { get; set; }
}
Используя этот простой вызов без пользовательских конвертеров / связывателей / преобразователей контрактов:
var testObject = new DMSDocWorkflowI();
var json = JsonConvert.SerializeObject(testObject, Formatting.Indented);
или даже сJToken.FromObject(...)
Я всегда получаю только одно свойство:
{
"DMSDocWorkflowIResultSpecified": false
}
Когда я присоединяю трассировщика, он ловит только это:
[0]: "2016-08-30T11:06:27.779 Info Started serializing *****DMSDocWorkflowI. Path ''."
[1]: "2016-08-30T11:06:27.779 Verbose IsSpecified result for property 'DMSDocWorkflowIResult' on *****DMSDocWorkflowI: False. Path ''."
[2]: "2016-08-30T11:06:27.779 Info Finished serializing *****.DMSDocWorkflowI. Path ''."
[3]: "2016-08-30T11:06:27.780 Verbose Serialized JSON: \r\n{\r\n \"DMSDocWorkflowIResultSpecified\": false\r\n}"
Так что, похоже, Newtonsoft.Json обрабатывает это свойство «Specified» несколько волшебным образом. Могу ли я отключить это? Мне нужны оба эти свойства в результате JSON с именно этими именами.