5

セットアップ: 私は、ほとんどすぐに使える Nancy + TinyIoC セットアップで、正常に動作する Web サービスを実行しています。さまざまな (AsSingleton) サービス クラスに依存します。ただし、これらはシングルトンとして注入されず、毎回新しいインスタンスが作成されます。

Nancy ブートストラップを次のようにセットアップしました。

class MyBootStrapper : DefaultNancyBootstrapper
{
    protected override void ConfigureApplicationContainer(TinyIoCContainer container)
    {
        var cp = new CertificateProvider();
        container.Register(cp).AsSingleton();
    }
}
4

2 に答える 2

6

AsSingleton()コードでは、型やファクトリではなくインスタンスを登録しているため、削除してもシングルトンが残ります。TinyIoC がCertificateProviderその登録で の新しいインスタンスを作成する方法はありません。

考えられる唯一のことは、ブートストラップ自体が複数回実行されることですが、それはまったく別の問題であり、登録とは関係ありません。

于 2012-10-11T15:18:41.677 に答える
5

ブートストラッパーが使用されていますか?公開されていないため、デフォルトの規則が非インターフェース依存関係の複数のインスタンスである組み込みのものを使用している可能性があります。

ダニエルの答えと同様に、インスタンス登録を行う場合はAsSingletonも必要ありませんが、次のようにすることもできます。

container.Register<CertificateProvider>().AsSingleton();

したがって、必要な場合にのみ作成されます。

于 2012-10-11T15:24:41.040 に答える