2012-05-16 63 views
0
/// <summary> 
    /// Starts up the Application. 
    /// </summary> 
    /// <param name="container">The container.</param> 
    /// <param name="pipelines">The pipelines.</param> 
    protected override void ApplicationStartup(TinyIoC.TinyIoCContainer container, Nancy.Bootstrapper.IPipelines pipelines) 
    { 
     base.ApplicationStartup(container, pipelines); 

     container.Register<UserProvider>().AsPerRequestSingleton(); 
    } 

以上是我的現有應用程序啓動包含我的TinyIoc配置。有什麼方法可以將所有接口註冊並將其全部轉換爲PerRequestSingletons?我不能一個一個地做它們,因爲我有太多的存儲庫,我不能把它們留作單例,因爲它不適用於NHibernate的設置。TinyIoc - 如何配置所有接口註冊AsPerRequestSingleton?

+0

在此之前從來沒有聽說過TinyIoc。你選擇使用它的任何理由? – Chev

+1

它是南希的默認IoC提供程序。它可以直接使用。 – biofractal

+0

@Diego Mijelshon我不確定你爲什麼刪除了NHibernate標籤,因爲它是問題的組成部分。請解釋。 –

回答

1

如果您希望一切都是請求範圍,請嘗試將註冊移動到ConfigureRequestContainer方法而不是ApplicationStartup

通常這是你在南希如何處理請求範圍的單身人士。

如果您未必需要查看另一個DI軟件包,例如。 http://nuget.org/packages/Nancy.Bootstrappers.Autofac
它具有更多的功能和約定來處理羣衆註冊。

只需將它設爲nuget,然後將您的引導程序作爲程序包內引導程序的子類。

+0

ConfigureRequestContainer對我不起作用,因爲它會導致性能下降(2.8秒來註冊我們的所有類) –

+0

我已經給你正確的答案,因爲我已經移動到不同的引導程序。我們和Windsor一起去了,就像我們以前用過的那樣 –

相關問題