У меня есть три проблемы:
- Как я могу иметь свойства, допускающие значение NULL? Свойство будет иметь значение null, если соответствующий тег/атрибут не установлен.
- Как применить ограничения типа? Установка атрибута XmlElement.DataType приводит к сбою сериализации.
- Почему моя сериализация не удалась?
{
[XmlElement("text")]
[JsonPropertyName("text")]
public List TextParts { get; set; } = [];
[XmlElement("card")]
[JsonPropertyName("card")]
public List GameCards { get; set; } = [];
}
public class XmlPortfolioTextPart
{
[XmlAttribute("centered")]
public bool? Centered { get; set; }
[XmlAttribute("header")]
[Range(0, 6)]
public uint? Header { get; set; }
[XmlText]
public string Content { get; set; } = string.Empty;
}
public class XmlGameCard
{
[XmlElement("place-id")]
[JsonPropertyName("place-id")]
public ulong PlaceId { get; set; }
[XmlElement("work-period")]
[JsonPropertyName("work-period")]
public XmlWorkPeriod WorkPeriod { get; set; } = null!;
[StringLength(20, MinimumLength = 5)]
public string Role { get; set; } = string.Empty;
}
public class XmlWorkPeriod
{
[XmlAttribute("begin", DataType = "date")]
public DateOnly Begin { get; set; }
[XmlAttribute("end", DataType = "date")]
public DateOnly? End { get; set; }
}
public class XmlUpdatePortfolioContentRequest
{
[Required]
[XmlElement(ElementName = "schema-version")]
[XmlText]
[JsonPropertyName("schema-version")]
public string SchemaVersion { get; set; } = string.Empty;
[Required]
[XmlElement("portfolio")]
public XmlPortfolio Portfolio { get; set; } = null!;
}
Действие контроллера:
[Consumes("application/xml")]
public async Task Update([FromBody] XmlUpdatePortfolioContentRequest req)
{
return Ok();
}
Мои полезные данные XML
string
Hello World!
0
string
Ответ:
{
"title": "One or more validation errors occurred.",
"status": 400,
"errors": {
"": [
"An error occurred while deserializing input data."
],
"req": [
"The req field is required."
]
},
"traceId": "00-57f5276ed3d1b4db642be9cad6e86d28-7eb32ac14164d3f9-00"
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... tion-fails
Мобильная версия