2014-11-28 31 views
5

Konsol projesinde tek bir modüle sahip, kendiliğinden barındırılan basit bir Nancy sitesi oluşturdum. Bunu test ederken, modül kurucusunun her istek üzerine çağrıldığını fark ettim. Bu beni seviyor çünkü ctor da rotaların kaydedildiği yerdir. Bu bana mantıklı gelmiyor ve bir şeyleri kaçırmam gerekiyor. Yani her istek üzerine modül kurucuları deniliyor ve böylece her bir istek üzerine yeniden kaydedilen tüm rotalar var mı?Nancyfx'teki modüller her istekte gerçekten oluşturuluyor mu?

+2

Bu konuda da endişeliydim. Oluşturulması pahalı olabilecek bağımlılıklar hakkında daha fazla rota ve daha fazlası. Bu yüzden yapılar arasındaki bağımlılıkları önbelleğe almak için statik özellikler kuruyorum. Sonra testlerimden birkaçı başarısız oldu, çünkü ilk testin önyükleyicileri sonraki tüm testler için kullanılıyordu. –

cevap

5

Sıralama - Nancy başlangıçta tüm modülleri inşa edecek, tüm rotalarını kaydedecek ve yönlendirme Ağacı'nı oluşturacaktır. Her bir talep için, hangi modülün ihtiyaç duyduğunu anlayacaktır ve talep konteynerini kullanarak yapılandıracaktır, bu nedenle kapsam bağımlılıklarının doğru ömre sahip olmasını talep edin, ardından ilgili işlemi gerçekleştirin. Güzergâhlar her istekte "kayıtlı" değildir, sadece modülde bir koleksiyonda saklanır ve motor doğru olanı yürütür.

+2

Ancak, tüm rotalar, her istek olayında bir DynamicDictionary içinde geri yüklenmez, ancak ihtiyaç duyulmadıklarından (isteğin hangi yolla eşleştiğini biliyoruz)? evet o zaman bu gerekli olmayan bir istek üzerine çalışmak için garip görünüyor. Rotaları kayıttan daha iyi bir yol var mıdır, böylece her talepte mümkün olduğunca az şey yapılır? –

+1

da, bir modülde birçok rotaya sahip olmamak akıllıca gibi görünüyor, ancak bunun yerine her biri daha az rota ile daha fazla modüle sahip? –

+0

Çok az fark yaratıyor .. Her modülde milyonlarca modül ve binlerce rota ile yük testi yaptık. Ama genel olarak “normalde” insanları modülleri bir araya getirmekten ziyade fonksiyonel alanlara/kaynaklara ayırdıklarını görürüz. –

İlgili konular