我想弄清.net数组到XML的序列化。这里是一块,我已经拿出代码:Array到XML的.NET序列化。如何为数组类型设置别名?
public class Program
{
public class Person
{
public string Firstname { get; set; }
public string Lastname { get; set; }
public uint Age { get; set; }
}
static void Main()
{
Person[] p =
{
new Person{Age = 20, Firstname = "Michael", Lastname = "Jackson"},
new Person{Age = 21, Firstname = "Bill", Lastname = "Gates"},
new Person{Age = 22, Firstname = "Steve", Lastname = "Jobs"}
};
SerializeObject<Person[]>(p);
}
static void SerializeObject<T>(T obj) where T : class
{
string fileName = Guid.NewGuid().ToString().Replace("-", "") + ".xml";
using (FileStream fs = File.Create(fileName))
{
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");
XmlSerializer ser = new XmlSerializer(typeof(T));
ser.Serialize(fs, obj, ns);
}
}
}
下面是这个例子记到XML文件的XML内容:
<ArrayOfPerson>
<Person>
<Firstname>Michael</Firstname>
<Lastname>Jackson</Lastname>
<Age>20</Age>
</Person>
<Person>
<Firstname>Bill</Firstname>
<Lastname>Gates</Lastname>
<Age>21</Age>
</Person>
<Person>
<Firstname>Steve</Firstname>
<Lastname>Jobs</Lastname>
<Age>22</Age>
</Person>
</ArrayOfPerson>
但这并不是我真正想要的东西。我希望它看起来像这样:
<Persons>
<Person>
<Firstname>Michael</Firstname>
<Lastname>Jackson</Lastname>
<Age>20</Age>
</Person>
<Person>
<Firstname>Bill</Firstname>
<Lastname>Gates</Lastname>
<Age>21</Age>
</Person>
<Person>
<Firstname>Steve</Firstname>
<Lastname>Jobs</Lastname>
<Age>22</Age>
</Person>
</Persons>
我怎么能得到它的工作方式?提前致谢!
好东西!非常感谢你! – 2010-09-01 17:38:45
考虑到这个代码,我可以以某种方式控制数组子节点的名称吗?例如渲染而不是 ... –
2010-09-02 05:40:31
@the_V:是的,你可以。我更新了我的帖子。 – code4life 2010-09-02 13:52:47