Я строю XML строку в приложении САПР с его собственным сценарием и передаю ее в HTTPPost, это прекрасно работает.
В контроллере я считываю поток в XML документ, который я затем конвертирую в JSON и десериализацию.
Проблема, с которой я сталкиваюсь, заключается в том, что иногда один из объектов в иерархии может иметь только один объект, в этом случае на сайте только одно здание, десериализация завершается неудачей.
В Ньютон софт, вы можете заставить Array "json: Array = 'true'", но затем "do c .Load Xml (ReadString);" не может
кто-нибудь может помочь?
Спасибо
Madaxe
<Site>
<Building>
<Floor>
</Floor>
<Floor>
</Floor>
</Building>
[HttpPost("v1/PassignModels/XML")]
public async Task<string> ReadStringDataManual()
{
string ReadString = null;
try
{
using (StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8))
{
ReadString = await reader.ReadToEndAsync();
XmlDocument doc = new XmlDocument();
doc.LoadXml(ReadString);
string json = JsonConvert.SerializeXmlNode(doc);
Example NewSite = JsonConvert.DeserializeObject<Example>(json);
}
Console.WriteLine(ReadString);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return ReadString;
}