如何在C#类文件中具有动态xml元素名称



这是我当前的XML响应标签

<Response_Data_1234 diffgr:id="Response_Data_1234" msdata:rowOrder="0" diffgr:hasChanges="inserted">
<Status>File received.</Status>
<Time>2022-01-25T09:44:15.73+08:00</Time>
<Location>HKG</Location>
</Response_Data_1234>

<Response_Data_1234>是响应数据id,它将根据请求而动态。有人能不能请我在这个场景中创建一个C#类,这样我就可以直接将响应映射到该类。提前感谢

实际上,XML元素名称不应该附加任何唯一标识符。它应该作为属性添加

要回答您的问题:在取消xml字符串到对象的序列化时,没有可忽略类名的直接类属性。

选项1(更好(:为XNode创建映射器扩展方法,以类属性映射并重用它。

选项2:若您的xml字符串很小,您可以尝试更新根元素的名称并使用它来取消序列化。

示例代码:


var responseDataXDoc = XDocument.Parse(xml);
responseDataXDoc.Root.Name = "ResponseData";
var serializer = new XmlSerializer(typeof(ResponseData));
var responseData = serializer.Deserialize(new StringReader(responseDataXDoc.ToString(SaveOptions.DisableFormatting)));

最新更新