我有一個庫,它返回由IDictionary,IList和基元類型(字符串和整數)組成的分層列表。目前我無法改變這些數據的返回方式。C#垃圾收集器問題
我有另一個強類型的類正在使用這些數據並將其轉換爲業務對象。返回的數據中有一個「屬性」列表,我想將其導入到強類型類中。然後我可以處理層次結構。
我的問題是這樣的:如果我這樣做:
MyCustomClass.Properties = HierarchicalData["some_name"]
哪裏MyCustomClass是我的強類型的類,並且HierarchicalData是IDictionary的數據時,我再打會發生什麼:
HierarchicalData = null
燦分層數據被處置和釋放?在這種情況下,「some_data」是另一個字典,所以技術上這是所有需要保留的。我需要做的,而不是導入一個明確的副本,如:
MyCustomClass.Properties = HierarchicalData["some_name"].ToDictionary<string, string>(/* selector */)
澄清:我不擔心包含的屬性被垃圾收集的字典。我想確保HierarchicalData __can__可以被刪除,因爲它非常大,我需要與其中的幾個一起工作。
'Dictionary'沒有實現'IDisposable',所以不需要(也不能)處理。你只是想讓它由GC收集。 – SLaks 2010-01-08 02:15:24
是的,這裏當我說處置我的意思超出範圍,因此收集的候選人,而不是在Dispose()。 – GrayWizardx 2010-01-08 02:17:22