У меня есть библиотека, которая возвращает иерархический список, состоящий из IDictionary, IList и примитивных типов (string и ints). В настоящее время я не могу изменить способ возврата этих данных.C# Вопрос сборщика мусора
У меня есть еще один строго типизированный класс, который использует эти данные и преобразует их в бизнес-объекты. В возвращаемых данных есть список «свойств», которые я хочу импортировать в свой строго типизированный класс. Затем я могу распоряжаться иерархией.
Мой вопрос заключается в следующем: если я это сделать:
MyCustomClass.Properties = HierarchicalData["some_name"]
Где MyCustomClass моя сильно типизированных классов и HierarchicalData это данные IDictionary, что происходит, когда я позже по телефону:
HierarchicalData = null
Может Иерархические данные должны быть удалены и выпущены? «some_data» в этом случае - это другой Словарь, и поэтому технически это все, что нужно сохранить. Мне нужно сделать явную копию вместо того, чтобы импортировать ли, такие как:
MyCustomClass.Properties = HierarchicalData["some_name"].ToDictionary<string, string>(/* selector */)
Разъяснение: Я не беспокоится о словаре, содержащим свойство сборщика мусора. Я хочу, чтобы HierarchicalData __can__ был удален, поскольку он довольно большой, и мне нужно работать с несколькими из них.
'Словарь' не реализует' IDisposable', поэтому он не должен быть (и не может быть) удален. Вы просто хотите, чтобы он был собран GC. – SLaks
Да, здесь, когда я говорю, что я имею в виду, я имею в виду вне сферы действия и, следовательно, кандидат на сбор, а не как в Dispose(). – GrayWizardx