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 に変換する方法はありますか? リポジトリが多すぎるため、それらを「1つずつ」実行することはできません。また、NHibernateのセットアップ方法では機能しないため、それらをシングルトンのままにしておくこともできません。

4

1 に答える 1

1

すべてをリクエストスコープにしたい場合は、登録をConfigureRequestContainerではなくメソッドに移動してみてくださいApplicationStartup

通常、これは Nancy でリクエスト スコープのシングルトンを処理する方法です。

別のDIパッケージを見る必要があるかもしれないことに失敗した場合。http://nuget.org/packages/Nancy.Bootstrappers.Autofac
大量登録を処理するためのより多くの機能と規則があります。

ナゲットしてから、ブートストラップをパッケージ内のブートストラップのサブクラスにします。

于 2012-05-16T12:46:16.050 に答える