Как заставить 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 с именно этими именами.

Ответы на вопрос(1)

Ваш ответ на вопрос