2

我正在为 API 项目使用 NancyFX 和 Highway.Data + Entity Framework。我的模块依赖于存储库,该存储库依赖于 DataContext。我需要注册 DataContext 并包含来自 web.config 的连接字符串,所以我有这个:

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 连接字符串,但也使用自动注册已经注册的任何 IMappingConfiguration。

但它看起来像是将其注册为单例而不是每个网络请求。这意味着数据在 Web 请求之间被缓存,这不是我想要的。

我尝试将 .AsMultiInstance() 添加到上面的注册中,但在启动时出现错误:“无法将 TinyIoC.TinyIoCContainer+DelegateFactory 的当前注册转换为多实例”

谁能建议我如何正确注册?

4

1 回答 1

2

容器配置应根据您的生命周期要求执行ConfigureApplicationContainer或执行。ConfigureRequestContainer

希望这可以帮助

于 2012-11-15T07:19:01.907 回答