首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nancy和/或TinyIoC不遵守AsSingleton()

Nancy和/或TinyIoC不遵守AsSingleton()
EN

Stack Overflow用户
提问于 2012-10-11 23:16:07
回答 2查看 1.9K关注 0票数 5

设置:我有一个几乎开箱即用的Nancy + TinyIoC设置,它运行一个webservice,运行得很好。它取决于各种(AsSingleton)服务类别。然而,这些不是作为单例注入的,每次都会创建一个新的实例。

我设置了Nancy引导程序,如下所示:

代码语言:javascript
复制
class MyBootStrapper : DefaultNancyBootstrapper
{
    protected override void ConfigureApplicationContainer(TinyIoCContainer container)
    {
        var cp = new CertificateProvider();
        container.Register(cp).AsSingleton();
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-11 23:24:41

您确定正在使用您的引导程序吗?它不是公共的,所以它很可能只使用内置的一个,其中的默认约定是非接口依赖的多个实例。

就像丹尼尔的回答..如果您正在进行实例注册,您也不需要AsSingleton,您也可以这样做:

代码语言:javascript
复制
container.Register<CertificateProvider>().AsSingleton();

所以它只在需要的时候创建。

票数 5
EN

Stack Overflow用户

发布于 2012-10-11 23:18:42

在您的代码中,即使您要删除AsSingleton(),您仍然会有一个单例,因为您注册的不是类型或工厂,而是一个实例。TinyIoC不可能使用该注册创建新的CertificateProvider实例。

我能想到的唯一可能的事情是引导程序本身被多次执行,但这是一个完全不同的问题,与您的注册无关。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12842945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档