将类扩展与递归相结合

时间:2014-09-24 22:14:46

标签: c#

我有一些代码可以遍历提供的路径并收集文件信息。为了让系统继续能够进一步隧道传输到文件树中,我添加了一个DirectoryInfo字段,然后添加了一个BranchLevel计数器,以防止在网络文件系统上遗忘这些东西。

所以,一切正常。我收集数据,然后尝试将其序列化为JSON。不幸的是,DirectoryInfo对象的序列化(此时我不再需要)导致问题。我考虑创建一个基类,然后使用DirectoryInfo和BranchLevel字段扩展该类,然后在序列化之前转换为基类。这似乎是明智的,直到我尝试它,让所有人困惑,并来到这里寻求帮助。

这是类定义:

public class TreeInfo {
    public TreeInfo(int CurrentLevel) {
        BranchLevel = CurrentLevel;
        Children = new List<TreeInfo>();
        Fileset = new List<FileInfo>();
    }

    public System.IO.DirectoryInfo DirInfo { get; set; }     // <-- Don't want to serialize
    public int BranchLevel;     // <-- Don't need to serialize, but it's not the end of the world

    public string Name { get; set; }
    public List<TreeInfo> Children { get; set; }
    public List<FileInfo> Fileset { get; set; }
}

我想创建一个没有两个已识别成员的类,然后扩展它以添加这些成员。但是,由于基类有一个自己输入的子列表,甚至可以扩展吗?

1 个答案:

答案 0 :(得分:2)

您可以在不希望序列化的字段中添加ScriptIgnore属性(或序列化库的类似属性)吗?