C# 使用多个对象生成XML

C# 使用多个对象生成XML,c#,xml,C#,Xml,我有多个对象类,正在尝试将它们转换为一个xml文档 第一类是: public class GameObject { // data members public int squareID; public int objectID; public String objectDescription; public String objectName; } 二是: public class GameEvent { // data members public int eventID; public

我有多个对象类,正在尝试将它们转换为一个xml文档

第一类是:

public class GameObject
{
// data members
public int squareID;
public int objectID;
public String objectDescription;
public String objectName;
}
二是:

public class GameEvent
{
// data members
public int eventID;
public String eventDescription;
public int hasEventOccured;
}
我正在寻找的xml结构是

<GAME>
    <EVENTS>
        <event>         
        </event>    
    <EVENTS>

<OBJECTS>
    <object>            
    </object>
<OBJECTS>


它可以在单个表达式中完成,在其名称后使用
XElement
构造函数的参数创建子元素,并扩展集合,因此LINQ表达式将为每个节点创建一个子元素(
XElement
创建子元素,
XAttribute
添加属性)


您可以这样定义另一个类:

[DataContract(Name ="GAME")]
public class Game
{
    [DataMember(Name = "OBJECTS")]
    List<GameObject> Objects { get; set; }

    [DataMember(Name = "EVENTS")]
    List<GameEvent> Events { get; set; }
}

如果
DataContract
属性不可用,请不要忘记添加对
System.Runtime.Serialization

的引用,创建类的结构,如下所示: 创建类的结构,如下所示,并通过将值赋给类的属性来序列化类的对象:

[XmlRoot("GAME")]
    public class Game
    {
        [XmlElement("EVENTS")]
        public Events Events { get; set; }

        [XmlElement("OBJECTS")]
        public GameObject GameObject { get; set; }
    }


    public class Events
    {
        [XmlElement("EVENTS")]
        public GameEvent Event;
    }

    public class Object
    {
        [XmlElement("object")]
        public GameObject GameObject;
    }
    public class GameEvent
    {
        [XmlElement("eventID")]
        public int eventID;

        [XmlElement("eventDescription")]
        public String eventDescription;

        [XmlElement("hasEventOccured")]
        public int hasEventOccured;
    }

    public class GameObject
    {
        [XmlElement("squareID")]
        public int squareID;

        [XmlElement("objectID")]
        public int objectID;

        [XmlElement("objectDescription")]
        public String objectDescription;

        [XmlElement("objectName")]
        public String objectName;
    }

您能显示您想要的xml文件结构吗?为什么不创建一个包装类并将其序列化为xml?1使用了rock 0 1一个带有数字pad safe 115@jsomers89的大型保险柜请更新问题:XML在注释中的可读性甚至不如代码块。
public static void Serialize<T>(string path, T value)
{
    System.Xml.Serialization.XmlSerializer serializer = 
                 new System.Xml.Serialization.XmlSerializer(typeof(T));

    System.Xml.XmlTextWriter writer = 
                 new System.Xml.XmlTextWriter(path, System.Text.Encoding.UTF8);

    serializer.Serialize(writer, value);

    writer.Close();
}
[XmlRoot("GAME")]
    public class Game
    {
        [XmlElement("EVENTS")]
        public Events Events { get; set; }

        [XmlElement("OBJECTS")]
        public GameObject GameObject { get; set; }
    }


    public class Events
    {
        [XmlElement("EVENTS")]
        public GameEvent Event;
    }

    public class Object
    {
        [XmlElement("object")]
        public GameObject GameObject;
    }
    public class GameEvent
    {
        [XmlElement("eventID")]
        public int eventID;

        [XmlElement("eventDescription")]
        public String eventDescription;

        [XmlElement("hasEventOccured")]
        public int hasEventOccured;
    }

    public class GameObject
    {
        [XmlElement("squareID")]
        public int squareID;

        [XmlElement("objectID")]
        public int objectID;

        [XmlElement("objectDescription")]
        public String objectDescription;

        [XmlElement("objectName")]
        public String objectName;
    }