Autofac IoC kapsayıcısını kullanarak InstancePerHttpRequest ömür boyu kapsamını sağlayan MVC4 eklentisini kullanıyorum. Ancak benim projemde web, web-api ve arka plan çalışan iş parçacığı var. Aşağıdaki örnekte, InstancePerHttpRequest kapsamının bir web isteğinden kaynaklanmadığı zaman çok fazla olamayacağını varsayıyorum.Birden fazla Autofac yaşam boyu kapsamları bir kayıtta belirtilebilir mi?
builder.RegisterType<DatabaseFactory>().As<IDatabaseFactory>()
.InstancePerHttpRequest()
Ben BT aşağıdaki gibi bir şey yapmak ve konteyner en uygun yaşam boyu kapsamını seçmek zorunda mümkün olup olmadığını merak ediyorum? istek o InstancePerApiRequest kapsamını seçecek bir WebAPI isteği kaynaklanıyorsa o zaman InstancePerHttpRequest kapsamını seçecektir bir web isteğinden kaynaklanır eğer gerçekleşmesi niyetinde ne Bu durumda
builder.RegisterType<DatabaseFactory>().As<IDatabaseFactory>()
.InstancePerHttpRequest()
.InstancePerApiRequest()
.InstancePerDependency();
olup, kullanıldığı takdirde uygulama çalışan iş parçacığı tarafından InstancePerDependency kapsamını kullanacak?
Bu ya da benzer bir şey mümkün olduğunda herhangi bir fikir var mı?
Teşekkür
Harika! Tam cevap için teşekkür ederiz, bu büyük ölçüde yardımcı olur. – chriskopec
bunun yararlı olacağını düşünün. Bir örnek, dbcontext web api eyleminden beri EF framework kullanıyor, eğer yeni bir iş parçacığıyla veritabanına erişmesi gereken sınıfı çağırıyorsa, olasılıklar sadece instanceperhttprequest ise, istisna atar, bu yüzden InstancePerLifetimeScope'a sahip olma esnekliğine sahip olmanız gerekir. InstancePerLifetimeScope'a sahip olmak neredeyse daha iyidir. – koo9