Karşılaştığım ortak bir sorun olmalı. Birkaç farklı sınıfa abone olabilen bir olayım olduğunda, bu sınıflardan biri tarafından atılan bir istisna geri arama zincirini öldürecektir; Geri çağırmaların hangi sırayla gerçekleştirildiğini önceden bildiğimden, bu, bazı sınıflar için öngörülemeyen durum değişikliklerine yol açabilir ve başkaları için olmayabilir.Delege zincirimi çökerterek özel durumları nasıl durdurabilirim?
İncil'de (CLR via C#, C# 2.0 kullanıyorum), bunun için MulticastDelegate.GetInvocationList
'u kullanmanın kısa bir paragrafı var, ama başka bir şey yok. Yani sorum şu: Bununla başa çıkmanın en iyi yolu nedir? Her olayım olduğunda MulticastDelegate.GetInvocationList
kullanmalı mıyım? Ya da delege zincirinin bir parçası olarak çağrılabilecek tüm yöntemleri bir tür geri alma mekanizması içine almam mı gerekiyor? Neden tüm bu seçenekler C# içinde kullanımı çok kolay olan basit olay/delege modeline göre çok karmaşık? Ve basit yolu, bozuk durumla bitmeden nasıl kullanabilirim?
Teşekkürler!
not Yorumunuzu yazın –