2014-09-24 103 views
0

我有一些代碼提供了一個提供的路徑並收集文件信息。爲了使系統繼續能夠進一步隧道到文件樹中,我添加了一個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; } 
} 

我認爲建立一個沒有確定的兩個成員的類,然後擴展它來添加的成員。但是由於基類有一個子類型的列表,它可以被擴展成甚至可能嗎?

回答

2

你可以添加一個ScriptIgnore屬性(或序列化庫的類似)到你不想序列化的字段嗎?

+0

很明顯是的,那就是訣竅。非常感謝你。 – 2014-09-24 22:28:25

+1

很高興幫助:)。您是否可以通過點擊帖子旁邊的複選標記來接受答案,謝謝。 – user1112560 2014-09-24 22:35:50

+0

對不起。我之前試過,系統說我必須等一分鐘才能接受。我試圖等待,但是......松鼠! – 2014-09-24 23:35:21