2

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の現在の登録をマルチインスタンスに変換できません」

誰かがこれを正しく登録する方法を提案できますか?

4

1 に答える 1

2

コンテナ構成は、ライフタイム要件のいずれかで、またはそれに応じてConfigureApplicationContainer実行する必要があります。ConfigureRequestContainer

お役に立てれば

于 2012-11-15T07:19:01.907 に答える