Bazı günlük çıkışını yapabileceği bir tekil benzeri sınıf var: Ben kullandığınızdaFlush StreamWriter
örnek bir programda gibi
class Program
{
private static void Main(string[] args)
{
Foo.Instance.Log("asdf\n");
}
}
dosyası bu oluşturuluyor, ancak çıktı yazılmıyor. Bunun, StreamWriter
'un hiç kızarmadığı için olduğunu farz ediyorum.
~Foo()
{
os.Close();
}
ama bu ObjectDisposedException
verir:
ben ~Foo()
içinde Close()
için çağırarak sınıfı onarmaya çalıştı. Görünüşe göre Foo
'un yıkıcısı çağrıldığında Foo.os
zaten imha edilmiştir.
StreamWriter
sayfamın "en sonunda" temizlendiğinden nasıl emin olabilirim? this.os.AutoFlush = true;
eser Ayar
DÜZENLEME
. Foo
'a Flush()
yöntemini ekleyerek ve bunu uygun yerlerde çağırmak da işe yaramıyor.
[IDisposable interface] 'ı uygulayın (https://msdn.microsoft.com/en-us/library/system.idisposable (v = vs.110) .aspx) – Steve
Bunu düşündüm, ancak verilen örnekte Dispose() 'aranmayacak. – mkluwe
Bu bir yıkıcıdır. Farklıdır: http: //stackoverflow.com/questions/339063/what-is-the-difference-between-using-idisposable-vs-a-destructor-in-c – Steve