2011-11-23 25 views
9

ASP.NET uygulamasında hata ayıklamak için MessageHandling.cs adlı bir sınıf oluşturdum. Bu noktada tek bir desen var ama ben istek başına bir örnek olmasını istiyorum.HTTP isteği başına bir sınıf örneği

sınıfım, 'Db connected', 'Data inserted' ve benzeri gibi iletilerle doldurur. Apsx sayfasının tüm olayları işlendikten sonrasınıfı Page_LoadComplete() etkinliğinde createFile.apsx.cs tarafından okunur. Tüm hatalar ve mesajlar kullanıcıya gösterilecek.

Bu noktada, sistem hata ayıklama için çalışır. Bu noktada sorun, MessageHandling'in istek gönderildikten sonra boşaltılmaması ve hataların da ikinci tarayıcıda hiçbir şey yapmadan gösterilmemesidir. Aynı zamanda son kullanıcılara "Blog oluşturuldu" gibi mesajlar vermek için bu sistemi kullanmak istiyorum.
Class AClass B
Class CClass B

kullanıcı/oturum/istek başına değil çünkü tekil çalışmıyor okur oluşturur:

benim sorunun temel şudur. Yani başka bir yönteme ihtiyacım var.

+0

Tekilinizi ilk olarak nerede örneklendirirsiniz? –

+0

MssqlDb onu ilk kullanan kişidir. Yani bu, başlatıldığı yer. – h3rj4n

cevap

4

HttpContext.Current geçerli bir istek için HttpContext amacıdır. Bu, object'dan object'a kadar IDictionary olan bir Items özelliğine sahiptir. Hoşunuza giden her şeyi koyabilirsiniz ve mevcut talebe bağlı olacaktır.

-1

Oturumda bu nesnenin olup olmadığını görmek için, tekil yapıcınızı kontrol edebilir misiniz? Değilse, oluştur ve sonra geri ver?

private Singleton() 
{ 
    // do whatever 
} 

public Singleton GetMySingleton() 
{ 
    if(HttpContext.Current.Items["MyCustomSingleton"] == null) 
     HttpContext.Current.Items["MyCustomSingleton"] = new Singleton(); 
    // 

    return (Singleton)HttpContext.Current.Items["MyCustomSingleton"]; 
} 
+0

Bu kod parçası, istek başına değil, oturum başına önbellek alır. – Bertvan

+0

ya, benim kötü. o kısmı görmedim – Miles