2011-12-15 8 views
14

MvcMiniProfiler ile ilgili olarak gördüğüm şeyi çok beğeniyorum. Web dışı uygulamalarda (Windows servisleri, birim testleri, vb.) SQL izleme özelliklerini kullanmayı çok isterim. Bu mümkün mü, yoksa bir HTTP ortamı gerektiriyor mu? Açık fark sonuçların teslimi olurdu, ancak sonuçları JSON veya somesuch'a serileştirebilirsem, bu iyi olurdu.MvcMiniProfiler'ın çalışması için bir web uygulaması mı gerekiyor, yoksa birim testleri gibi saf kütüphanelerde kullanılabilir mi?

Birlikte çalışmayı denemeye çalışan basit bir birim sınaması yaptım, ancak MiniProfiler.Start()'u çalıştırdıktan sonra bile MiniProfiler.Current her zaman boş görünür.

Burada yanlış ağaç havlıyor muyum?

cevap

12

Mükemmel bir soru. çekirdeği (profiler örneği ve bağlantı paketleyicileri) http'a bağlı değildir. Kendi örneğini oluşturabilirseniz, hepsi işe yaramaz. Ancak, tüm UI kodları web uygulamaları etrafında düzenlenmiştir.

Bunu WPF, winforms vb. Kullanan kişilerden biliyorum. Bununla birlikte, mantıklı bir "ölçülen benim için bir şey" de bulmanız gerekir. Bir web uygulamasında açık: bir istek.

MiniProfiler.Current'un yalnızca bir kolaylık (bir yeri herhangi bir yere koyabilirsiniz) olduğunu unutmayın, ancak eminim ki kendi özetinizi oluşturmak için bunu mümkün kıldık (http bağlamından ziyade).

ah evet, başlıyoruz (kodunu kontrol gider):

public static MiniProfiler Current 
{ 
    get 
    { 
    MiniProfiler.Settings.EnsureProfilerProvider(); 
    return MiniProfiler.Settings.ProfilerProvider.GetCurrentProfiler(); 
    } 
} 

Yani o zaman .Current çalışması gerekir ProfileProvider ve kendi sağlayabilir.

+0

En mükemmel. Şimdi görüyorum ki WebRequestProfilerProvider, HTTP Bağlamında bir referans görüyoruz ve bu, herhangi bir HTTP varsayımını yapmayan bazı ana soyutlamaların altında. Teşekkürler! – CoolUserName