Я хотел бы сделать DisposableHelper класс, который регистрирует информацию в случае, если объект был завершен (и не склонного)Статическое поле в C# финализаторе
public abstract class DisposableBase : IDisposable
{
static Log log = new Log();
...
~DisposableBase()
{
log.Error("Object not disposed.");
Dispose(false);
}
}
log
класс на основе log4net. Я хотел спросить, будет ли объект log
доступен во время финализатора. Я предполагаю, что статическое поле будет мусором, собранным в конце процесса, но я не уверен. Я что-то пропустил?
Да, 'static log log' не будет собран и будет доступен во время финализатора –
Зачем вам нужен финализатор на первом месте? Если этот класс предназначен для базового класса для Disposables, для этого вам не нужен Finalizer. Финализатор имеет смысл только тогда, когда вы работаете с каким-то неуправляемым ресурсом. –
Код, который я предоставил, не заполнен. Фактически это завернуто в '#if DEBUG', и его цель - найти места, где потребитель забывает распоряжаться каким-либо одноразовым объектом. – Ondra