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很难,因为您必须在结束标记之前写入