APIプロジェクトにNancyFXとHighway.Data+EntityFrameworkを使用しています。私のモジュールは、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リクエストごとではなく、シングルトンとして登録しているようです。これは、データがWebリクエスト間でキャッシュされることを意味しますが、これは私が望んでいることではありません。
上記の登録に.AsMultiInstance()を追加しようとしましたが、起動時にエラーが発生します:「TinyIoC.TinyIoCContainer+DelegateFactoryの現在の登録をマルチインスタンスに変換できません」
誰かがこれを正しく登録する方法を提案できますか?