类的定义如下面代码。
目的:将类序列化为 xml 文件。
问题:只序列化 Values 没有问题,但序列化 Node 类时就出错了
我写的这是一个树结构,如果节点不能序列化,那么树也不能序列化。
请各位给点建议,只要能序列化成 .xml 就好
[Serializable]
public class Values
{
public string Name;
public string PassWord;
public int Cent;
public Values()
{
Name="";
PassWord="";
Cent=0;
}
} [Serializable]
public class Node
{
public Values v;
public Node[] Child;
public Node Parent;
public Node()
{
v=new Values();
Parent=null;
Child=new Node[0];
}
public void AddChild(Node c)
{
Extend_Children_Len();
c.Parent=this;
Child[Child.Length-1]=c;
}
private void Extend_Children_Len()
{
if(Child==null)
{
Child=new Node[1];
}
else
{
Node[] temp=new Node[Child.Length+1];
for(int i=0;i<Child.Length;i++)
{
temp[i]=Child[i];
}//for i
Child=temp;
}
}
}
目的:将类序列化为 xml 文件。
问题:只序列化 Values 没有问题,但序列化 Node 类时就出错了
我写的这是一个树结构,如果节点不能序列化,那么树也不能序列化。
请各位给点建议,只要能序列化成 .xml 就好
[Serializable]
public class Values
{
public string Name;
public string PassWord;
public int Cent;
public Values()
{
Name="";
PassWord="";
Cent=0;
}
} [Serializable]
public class Node
{
public Values v;
public Node[] Child;
public Node Parent;
public Node()
{
v=new Values();
Parent=null;
Child=new Node[0];
}
public void AddChild(Node c)
{
Extend_Children_Len();
c.Parent=this;
Child[Child.Length-1]=c;
}
private void Extend_Children_Len()
{
if(Child==null)
{
Child=new Node[1];
}
else
{
Node[] temp=new Node[Child.Length+1];
for(int i=0;i<Child.Length;i++)
{
temp[i]=Child[i];
}//for i
Child=temp;
}
}
}
解决方案 »
- 小弟有求于高人咯!关于树形控件!
- 帮忙找下毛病
- C# winFrom嵌入EXCEL问题
- (分数提高到50)SQL数据库问题,有截图!
- 求教比较两个长度字符串,返回相同位数怎么实现?
- 200分请问WebService问题
- 能否对DataSet使用Sql语句操作,如:select t1.f1,t2.f2 from t1,t2 where t1.id=t2.id
- c# 执行网页javascript函数
- winform datagridview拖动数据到另一个Datagridview
- 终于开发完成的通用软件框架。请大家试试看,给予讨论。
- 急:在C#中,修改活动目录的用户密码老是出错.
- 在矩形框中打印文本,怎样才能实现"两端对齐"的效果呢?
我的代码如下
Node n = new Node();
n.v = new Values();
n.Parent = new Node();
n.AddChild(new Node());
FileStream mem = new FileStream(@"d:\temp\123.xml",FileMode.Create );
IFormatter f = new SoapFormatter();
f.Serialize(mem,n); mem.Position = 0;
n = (Node)f.Deserialize(mem);
mem.Close();