C#对象序列化问题
在使用C#对象序列化的时候遇到点问题,
就是刚好有两个嵌套的list需要序列化,可最后序列化出来的结果却多套了一层,这个有不有什么好的办法可以解决的呀?多谢了:)
namespace MyTest.DataInfo
{
[Serializable]
[XmlRoot("CfgRoot")]
public class A_Info
{
// Serializes an ArrayList as a "A_Info_Tag" array
// of XML elements of custom type C_Info named "C_Info_Tag".
[XmlArray("AllList"),
XmlArrayItem("A_Info_Tag", typeof(B_Info))]
public System.Collections.ArrayList A_Info_TagList = new System.Collections.ArrayList(); //储存B_Info
}
}
namespace MyTest.DataInfo
{
[Serializable]
public class B_Info
{
[XmlAttribute]
public string name;
// Serializes an ArrayList as a "A_Info_Tag" array
// of XML elements of custom type C_Info named "C_Info_Tag".
//就是这儿,不知道到底该怎么序列化?这样序列化后,导致结果多了一层A_Info_Tag,参见下面的xml
[XmlArray("A_Info_Tag"),
XmlArrayItem("C_Info_Tag", typeof(C_Info))]
//[XmlArrayItemAttribute]
public System.Collections.ArrayList CbscList = new System.Collections.ArrayList(); //储存C_Info
}
}
namespace MyTest.DataInfo
{
[Serializable]
public class C_Info
{
[XmlAttribute]
public string name;
public string AdminPwd;
}
}
<CfgRoot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<AllList>
<A_Info_Tag name="A_Info_Tag0">
<A_Info_Tag> //想把这层去掉,可总是不行
<C_Info_Tag name="c0">
<AdminPwd>password0</AdminPwd>
</C_Info_Tag>
<C_Info_Tag name="c1">
<AdminPwd>password1</AdminPwd>
</C_Info_Tag>
<C_Info_Tag name="c2">
<AdminPwd>password2</AdminPwd>
</C_Info_Tag>