Это потому, что если значение Encoding установлено в UTF-8, когда оно преобразуется в json, это не «MessageEncoding»: «utf-8», а структура, подобная следующей:
{
"Address":"String content",
"MessageEncoding":{
"dataItem":{
"m_bodyName":"String content",
"m_dataIndex":2147483647,
"m_flags":4294967295,
"m_headerName":"String content",
"m_uiFamilyCodePage":2147483647,
"m_webName":"String content"
},
"decoderFallback":{
"bIsMicrosoftBestFitFallback":true
},
"encoderFallback":{
"bIsMicrosoftBestFitFallback":true
},
"m_codePage":2147483647,
"m_isReadOnly":true
}
}
Вот моя демонстрация:
HostConnection hostConnection = new HostConnection();
hostConnection.Address = "Test";
hostConnection.MessageEncoding = Encoding.UTF8;
string json=JsonConvert.SerializeObject(hostConnection);
Console.WriteLine(json);
введите описание изображения здесь
Если проблема не исчезнет, дайте мне знать.