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 配置。有没有办法把所有的接口注册都变成 PerRequestSingleton?我不能“一个一个”地做它们,因为我有太多的存储库,而且我不能把它们作为单例,因为它不适用于 NHibernate 的设置方式。

4

1 回答 1

1

如果您希望所有内容都在请求范围内,请尝试将注册移动到ConfigureRequestContainer方法而不是ApplicationStartup.

通常这是您在 Nancy 中处理请求范围的单例的方式。

如果失败,您可能需要查看另一个 DI 包,例如。http://nuget.org/packages/Nancy.Bootstrappers.Autofac
它有更多的特性和约定来处理大量注册。

只需 nuget 它,然后使您的引导程序成为包内引导程序的子类。

于 2012-05-16T12:46:16.050 回答