C# 如何在特定父节点中添加XML中的子元素?
我序列化了以下日志类:C# 如何在特定父节点中添加XML中的子元素?,c#,xml,serialization,C#,Xml,Serialization,我序列化了以下日志类: [Serializable] [XmlRoot("Log")] public class Log { [XmlElement("ErrorLog")] public ErrorLog Error { get; set; } [XmlElement("MessageLog")] public MessageLog Message { get; set; } } public class ErrorLog { [XmlElemen
[Serializable]
[XmlRoot("Log")]
public class Log
{
[XmlElement("ErrorLog")]
public ErrorLog Error { get; set; }
[XmlElement("MessageLog")]
public MessageLog Message { get; set; }
}
public class ErrorLog
{
[XmlElement("ErrorMessage")]
public string ErrorMessage { get; set; }
[XmlElement("Module")]
public string Module { get; set; }
[XmlElement("Component")]
public string Component { get; set; }
}
public class MessageLog
{
[XmlElement("Message")]
public string Message { get; set; }
[XmlElement("Module")]
public string Module { get; set; }
}
我正在XML文件中序列化上述日志类,如下所示:
abc
测试客户端
abc
测试客户端
数据访问层
我是否可以在单个根目录中添加所有元素,无论它们是ErrorLogs还是MessageLogs,如:
abc
测试客户端
数据访问层
abc
测试客户端
您可以创建
BaseLog
类并在Log
中声明列表
MesageLog
和ErrorLog
应继承自BaseLog
顺便说一下,如果xmlement与属性名具有相同的值,则无需对属性应用xmlement
属性。请为伐木工人投入一些时间,例如
我认为将日志保存为XML不是一种最佳做法(而是使用纯文本文件)。由于应用程序可能每秒崩溃一次,所以几乎每次出现新消息时都应该刷新日志文件。普通文件很容易(当您在最后一个字节之后写入字节时)而xml很难,因为您必须在结束标记之前写入