C# RNGCryptoservice утилизации в отдельном классе

Вот мой код http://pastebin.com/ZSh938Bg

Я использую RNGCryptoServiceProvider для получения безопасного блока случайных байтов (не реализован полностью)

в строке 160 я делаю новый RNGCryptoServiceProvider() в шифровании подкласса. Как я могу удалить (), когда моя программа выходит? (это форма)

Я не хочу, чтобы публичный метод в классе шифрования, потому что я получаю список для каждой функции, которая будет использоваться в списке через отражение (строки 27 и 95)

Кстати, переполнение стека говорит о, вы должны хорошо задокументировать свой вопрос и предоставить ссылки на источники, и когда я пытаюсь, это как о да, вам нужно 10 повторений для более чем 2 ссылок FTW. извините, мне пришлось вырезать несколько ссылок.

также я не спрашивал об этом на security.stackexchange.com, потому что не могу понять, что они говорят. я просто еще не настолько продвинут.

1 ответ

Вы должны использовать шаблон Dispose: внедрить IDisposable сами, затем позвоните на Closing событие.

class encryption : IDisposable
{
[....]
    public void Dispose()
    {
        Dispose(true);
        GC.SuppressFinalize(this);
    }
    protected virtual void Dispose(bool disposing){
        if (disposing)
        {
            if(provider != null) provider.Dispose();
        }
    }
}
Другие вопросы по тегам