/// <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 的设置方式。
如果您希望所有内容都符合请求范围,请尝试将注册移动到 ConfigureRequestContainer
方法中,而不是ApplicationStartup
。
通常,这是您在南希中处理请求范围的单例的方式。
否则,您可能需要查看另一个 DI 包,例如 http://nuget.org/packages/Nancy.Bootstrappers.Autofac
它具有更多功能和约定来处理批量注册。
只需 nuget 它,然后将引导程序作为包内引导程序的子类。