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();
}
}
}