序列化文件中缺少数据

时间:2017-11-27 11:00:14

标签: c# serialization

我正在将带有节点的树视图序列化为xml文件。

当我从xml文件反序列化时。

我无法在XML中找到我的treeview的全部内容。

问题是,在这个树视图中,我添加了一个特定类型的标记,我从cognex sdk获得。我想这种类型不可序列化?

我找不到标签,我在序列化之前把它推,这是我如何序列化对象:

public static void SaveTree(TreeView tree, string filename)
{
    using (Stream file = File.Open(filename, FileMode.Create))
    {
        BinaryFormatter bf = new BinaryFormatter();
        bf.Serialize(file, tree.Nodes.Cast<TreeNode>().ToList());
    }
}

public static TreeView LoadTree(string filename)
{
    TreeView tree=new TreeView();

    using (Stream file = File.Open(filename, FileMode.Open))
    {
        BinaryFormatter bf = new BinaryFormatter();
        object obj = bf.Deserialize(file);

        TreeNode[] nodeList = (obj as IEnumerable<TreeNode>).ToArray();
        tree.Nodes.AddRange(nodeList);
    }

    return tree;
}

我猜这种类型不可序列化,所以我该怎么办?如何序列化此对象?

0 个答案:

没有答案