我的程序需要確定對象圖是否包含循環引用。對象圖包含各種類型的對象實例(所有類都來自一個基類),如果格式良好,則應該形成一個層次結構。循環引用會在處理過程中導致無限循環。我需要在開始處理各個元素之前確定它,以產生適當的錯誤消息。使用反射在.NET中檢測對象之間的循環引用?
該程序是用C++/CLI編寫的,面向.NET 3.5。我想也許Reflection可以提供一些優雅的方式來實現這一點,但到目前爲止,我還沒有能夠把這些作品放在一起。
如果預先製作的簡單API不存在,我可以自己構建一個堆棧並組成一個這樣的函數;然而,由於涉及到不同的類別,反射可能會起作用。還是我咆哮完全錯誤的樹?
爲此我建議[着色DFS算法](http://www.cs.cornell.edu/courses/cs2112/2012sp/lectures/lec24/lec24-12sp.html) - 它非常簡單,讓我們您可以檢索您發現的用於輕鬆調試的週期(請參閱*檢測週期*段內的*拓撲排序*儘管在這裏看起來不需要完整的拓撲排序)。 –