C# 如何从类生成XmlWriter代码?
我有基类dlx10和许多嵌套类,它们有自己的嵌套类等:C# 如何从类生成XmlWriter代码?,c#,xmlwriter,C#,Xmlwriter,我有基类dlx10和许多嵌套类,它们有自己的嵌套类等: [System.Xml.Serialization.XmlRootAttribute("dlx")] class dlx10 { private car10[] carField; private clock10[] clockField; private device10[] deviceField; ... [System.Xml.Serialization.XmlElementAttribute("car")] public
[System.Xml.Serialization.XmlRootAttribute("dlx")]
class dlx10 {
private car10[] carField;
private clock10[] clockField;
private device10[] deviceField;
...
[System.Xml.Serialization.XmlElementAttribute("car")]
public car10[] car {
get {
return this.carField;
}
set {
this.carField = value;
}
}
[System.Xml.Serialization.XmlElementAttribute("device")]
public device10[] device {
get {
return this.deviceField;
}
set {
this.deviceField = value;
}
}
...
}
class car10 {
door10[] doorField;
[System.Xml.Serialization.XmlElementAttribute("door")]
public door10[] door {
get {
return this.doorField;
}
set {
this.doorField = value;
}
}
}
class device10 {
private diag10[] diagField;
private dns10[] dnsField;
...
}
...
现在,从这个类中,我需要生成XmlWriter c#代码,我可以复制并粘贴到我的解决方案中。输出将如下所示:
writer.WriteStartElement("dlx");
writer.WriteAttributeString("vars", "1.0");
writer.WriteAttributeString("id", "133");
writer.WriteAttributeString("type", "system_info");
foreach (var d in devices)
{
writer.WriteStartElement("device");
writer.WriteAttributeString("software", d.Software);
foreach (var s in d.Sensors)
{
writer.WriteStartElement("sens");
writer.WriteAttributeString("name", s.Name);
foreach (var c in s.Channels)
{
writer.WriteStartElement("chan");
writer.WriteAttributeString("id", c.Id.ToString());
writer.WriteEndElement();
}
writer.WriteEndElement();
}
writer.WriteEndElement();
}
writer.WriteEndElement();
有人能帮我吗?这个类太大了,无法手动完成。从这个类中,我需要创建各种类型的代码,所以在生成代码的过程中,我需要省略某些属性。对于您所要求的内容,这有点含糊不清。您是说您需要一个类来生成代码,还是需要代码来实现这个特定类的XmlWriter?内置的XML序列化不会为您序列化它吗?我不知道您的类有多大,但除非它绝对庞大,否则我怀疑编写、测试和调试代码生成器所需的工作要比编写序列化代码本身所需的工作多得多。200毫秒。我认为可以通过使用反射来完成,但问题是如何迭代这个类。200毫秒是代码中的一个严重瓶颈?你确定你的优化工作集中在正确的地方吗?