将类扩展与递归相结合
本文关键字:递归 相结合 扩展 | 更新日期: 2023-09-27 18:24:14
我有一些代码可以遍历提供的路径并收集文件信息。为了让系统继续能够通过隧道进一步进入文件树,我添加了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; }
}
我想创建一个没有两个已标识成员的类,然后扩展它以添加这些成员。但是,既然基类有一个Children列表,该列表被类型化为自身,那么扩展是否可能呢?
是否可以将ScriptIgnore属性(或串行化库的类似属性)添加到不希望串行化的字段中?