SimpleInjector驗證過程中,我有內置到我的解決方案,它具有使用SimpleInjector的GetAllInstances()
方法找到所有事件的訂戶的訂閱實例化過程專有的事件模型與IIS快遞/ Visual Studio中
public IEnumerable<ISubscriber<T>> GetSubscriptions<T>()
where T : IEvent
{
return _container.GetAllInstances<ISubscriber<T>>();
}
我取決於我是否登記的ISubscriber
或不
這一切情況得到性能上的巨大的差異就是我用來註冊ISubscriber
當我引導容器不調用RegisterManyForOpenGeneric
容器檢驗需要大約11秒,並返回結果:
配置警告:未檢測到警告。
註冊記憶:計數= 158
然而,當我取消調用RegisterManyForOpenGeneric
容器驗證約需72秒並返回結果:
配置警告:136容器登記的類型已被檢測到181種成分參考
註冊:計數= 475
我的問題是 - 這是好的,還是我在這裏做錯了什麼?我加入更多ISubscriber
類所有的時間和啓動,現在(的方式)太慢......
更新
看來,這僅僅是一個項目的WebAPI運行內部的問題Visual Studio。從控制檯應用程序引導需要15秒鐘在Visual Studio中運行。將WebAPI項目部署到IIS後,驗證需要6秒鐘。
您使用的是最新版本的SimpleInjector?它使用戶能夠在瀏覽引導代碼時查看任何容器驗證失敗的所有細節。 – 2013-04-11 22:39:14
@FacioRatio是使用2.2 – qujck 2013-04-11 22:39:58