2
我爲一個API項目使用NancyFX和Highway.Data +實體框架。我的模塊依賴於一個存儲庫,它依賴於一個DataContext。我需要的DataContext註冊幷包括web.config中的ConnectionString,所以我有這樣的:爲NancyFX正確註冊DataContext
public class CustomBootstrapper : DefaultNancyBootstrapper
{
protected override void ApplicationStartup(TinyIoC.TinyIoCContainer container, Nancy.Bootstrapper.IPipelines pipelines)
{
//Gotta specify how to register the DataContext to use the connectionstring
container.Register<IDataContext>(
(c, p) =>
new DataContext(ConfigurationManager.ConnectionStrings[1].ConnectionString,
c.Resolve<IMappingConfiguration>()));
base.ApplicationStartup(container, pipelines);
}
}
這將設置登記所以它使用我的web.config的ConnectionString,而且還採用任何IMappingConfiguration已經被註冊通過自動註冊。
但它看起來像將它註冊爲單例而不是每個Web請求。這意味着數據會在Web請求之間緩存,這不是我想要的。
我已經嘗試添加.AsMultiInstance()以上的註冊,但後來我得到啓動的錯誤:「無法轉換TinyIoC.TinyIoCContainer + DelegateFactory目前登記多實例」
任何人都可以提出我該如何正確註冊這個?
如果我提出我的IDataContext登記到ConfigureRequestContainer或RequestStartup,應用程序初始化失敗,因爲模塊在應用程序啓動解決。 –
說什麼?模塊在應用程序啓動時沒有解決 – TheCodeJunkie
是的,我誤解了正在發生的事情。事實證明,我需要在ConfigureRequestContainer中手動註冊更多的Highway.Data要求才能正常工作。 –