gpt4 book ai didi

C#,将强类型对象作为元素插入到 XML 文档中

转载 作者:数据小太阳 更新时间:2023-10-29 02:52:35 26 4
gpt4 key购买 nike

我有一个包含以下结构的 XML 文档:

它或多或少是事件的集合:

<Events>
<Event>
<DateTime></DateTime>
<EventType></EventType>
<Result></Result>
<Provider></Provider>
<ErrorMessage></ErrorMessage>
<InnerException></InnerException>
</Event>
</Events>

在 C# 中,我有一个名为 Event 的持久对象:

现在假设文档已经存在,并保存到文件中...我调用:

        XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(dataPath);

现在如何向事件添加新的事件项?

我的 C# 代码中有一个强类型的事件项,并希望将其作为最后一个子项插入到 XML 对象的事件集合中。

我想这才是我真正想问的:https://stackoverflow.com/questions/1457033/c-insert-a-strongly-typed-object-as-node-in-existing-xml-document

最佳答案

查看 Xml 序列化属性。

你可以这样做:

[XmlRoot("Event")]
public class Event
{

[XmlElement("DateTime")]
public string DateTime
{
get;
set;
}

[XmlElement("EventType")]
public EnumReportingEventType EventType
{
get;
set;
}

[XmlElement("Result")]
public EnumReportingResult Result
{
get;
set;
}

[XmlElement("Provider")]
public string Provider
{
get;
set;
}

[XmlElement("ErrorMessage")]
public string ErrorMessage
{
get;
set;
}

[XmlElement("InnerException")]
public string InnerException
{
get;
set;
}
}

事实上,如果类的属性与 Xml 中的元素同名,则不必使用 XmlElement 属性。

然后,您可以使用XmlSerializer 进行序列化和反序列化。

编辑:那么,创建一个代表存储在现有 xml 中的整个类型的类型不是更好吗?
反序列化它,为附加属性赋值,然后将其序列化回来?

关于C#,将强类型对象作为元素插入到 XML 文档中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1456782/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com