我正在为 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 的当前注册转换为多实例”
谁能建议我如何正确注册?