设置:我有一个几乎开箱即用的Nancy + TinyIoC设置,它运行一个webservice,运行得很好。它取决于各种(AsSingleton)服务类别。然而,这些不是作为单例注入的,每次都会创建一个新的实例。
我设置了Nancy引导程序,如下所示:
class MyBootStrapper : DefaultNancyBootstrapper
{
protected override void ConfigureApplicationContainer(TinyIoCContainer container)
{
var cp = new CertificateProvider();
container.Register(cp).AsSingleton();
}
}发布于 2012-10-11 23:24:41
您确定正在使用您的引导程序吗?它不是公共的,所以它很可能只使用内置的一个,其中的默认约定是非接口依赖的多个实例。
就像丹尼尔的回答..如果您正在进行实例注册,您也不需要AsSingleton,您也可以这样做:
container.Register<CertificateProvider>().AsSingleton();所以它只在需要的时候创建。
发布于 2012-10-11 23:18:42
在您的代码中,即使您要删除AsSingleton(),您仍然会有一个单例,因为您注册的不是类型或工厂,而是一个实例。TinyIoC不可能使用该注册创建新的CertificateProvider实例。
我能想到的唯一可能的事情是引导程序本身被多次执行,但这是一个完全不同的问题,与您的注册无关。
https://stackoverflow.com/questions/12842945
复制相似问题