C# 类扩展与递归的结合

C# 类扩展与递归的结合,c#,C#,我有一些代码,它沿着提供的路径运行并收集文件信息。为了使系统能够继续深入到文件树中,我添加了一个DirectoryInfo字段,然后添加了一个BranchLevel计数器,以防止该内容在网络文件系统中被遗忘 所以,这一切都很好。我收集数据,然后尝试将其序列化为JSON。不幸的是,DirectoryInfo对象的序列化(此时我不再需要该对象)正在导致问题。我考虑创建一个基类,然后用DirectoryInfo和BranchLevel字段扩展该类,然后在序列化之前转换为基类。这似乎是明智的,直到我尝试

我有一些代码,它沿着提供的路径运行并收集文件信息。为了使系统能够继续深入到文件树中,我添加了一个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; }
}
公共类树信息{
公共树信息(int CurrentLevel){
BranchLevel=当前水平;
Children=新列表();
Fileset=newlist();
}

public System.IO.DirectoryInfo DirInfo{get;set;}/是否可以添加属性(或序列化库的类似属性)对于您不希望序列化的字段?

很高兴它有帮助:)。您是否可以通过单击帖子旁边的复选标记来接受答案,谢谢。对此表示抱歉。我之前尝试过,系统说我必须等待一分钟才能接受。我尝试过等待,但是……松鼠!