Удаление управляемых ресурсов в пользовательских элементах управления WPF - PullRequest
3 голосов
/ 29 ноября 2011

Я пишу некоторые пользовательские элементы управления WPF для библиотеки третьей части. Например, я улучшил стандарт ComboBox некоторыми свойствами зависимости. Основная проблема заключается в том, что мои элементы управления имеют в качестве частных экземпляров несколько IDisposable объектов, и я хотел бы избавиться от этих объектов. Структура моих элементов управления выглядит примерно так:

public class MyComboBox : ComboBox

{

private IDisposableObject _innerObject;   
[..]

} 

Как я могу убедиться в том, что этот объект находится в распоряжении GC, и каков наилучший способ сделать это?

Заранее спасибо.

PS: Я пытался с помощью метода Finalizer, но я думаю, что это не чистое и хорошее решение, а с событием Unloaded элемента управления (что оно возникает также при отображении тем). изменения).

1 Ответ

0 голосов
/ 29 ноября 2011

Сделайте так, чтобы ваш MyComboBox Implement ID был одноразовым, и при этом утилизируйте другие ваши объекты.Когда вы закончите с вызовом поля со списком, избавьтесь от него.

public class MyComboBox : ComboBox, IDisposable 
{ 

    private IDisposableObject _innerObject;    
    [..] 

    public void  Dispose()
    {
        _innerObject.Dispose();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...