Где вызывать Dispose()
для IDisposable
объектов, принадлежащих объекту?
public class MyClass
{
public MyClass()
{
log = new EventLog { Source = "MyLogSource", Log = "MyLog" };
FileStream stream = File.Open("MyFile.txt", FileMode.OpenOrCreate);
}
private readonly EventLog log;
private readonly FileStream stream;
// Other members, using the fields above
}
Должен ли я использовать Finalize()
для этого примера? Что делать, если я вообще ничего не реализую? Будут ли проблемы?
Моя первая мысль заключалась в том, что MyClass
должен реализовывать IDisposable
. Но следующее утверждение в статье MSDN смутило меня:
Реализовать IDisposable только при непосредственном использовании неуправляемых ресурсов. Если ваше приложение просто использует объект, который реализует IDisposable, не предоставляют реализацию IDisposable.
Является ли это утверждение неправильным?