【问题标题】:Combining class extension with recursion将类扩展与递归相结合
【发布时间】:2014-09-24 22:14:46
【问题描述】:

我有一些代码可以遍历提供的路径并收集文件信息。为了让系统继续能够进一步进入文件树,我添加了一个 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 列表,是否可以进行扩展?

【问题讨论】:

    标签: c#


    【解决方案1】:

    您能否将ScriptIgnore 属性(或您的序列化库的类似属性)添加到您不想序列化的字段?

    【讨论】:

    • 很高兴它有帮助:)。您是否可以通过单击帖子旁边的复选标记来接受答案,谢谢。
    • 很抱歉。我之前试过,系统说我要等一分钟才能接受。我试图等待,但是……松鼠!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-18
    • 2019-08-24
    • 2018-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多