Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Nancy和/或TinyIoC不尊重AsSingleton()_C#_Nancy_Tinyioc - Fatal编程技术网

C# Nancy和/或TinyIoC不尊重AsSingleton()

C# Nancy和/或TinyIoC不尊重AsSingleton(),c#,nancy,tinyioc,C#,Nancy,Tinyioc,设置:我有一个几乎开箱即用的Nancy+TinyIoC设置,运行一个运行良好的Web服务。它取决于各种(阿辛格尔顿)服务类别。但是,这些不是作为单例注入的,每次都会创建一个新实例 我已按如下方式设置Nancy引导程序: class MyBootStrapper : DefaultNancyBootstrapper { protected override void ConfigureApplicationContainer(TinyIoCContainer container)

设置:我有一个几乎开箱即用的Nancy+TinyIoC设置,运行一个运行良好的Web服务。它取决于各种(阿辛格尔顿)服务类别。但是,这些不是作为单例注入的,每次都会创建一个新实例

我已按如下方式设置Nancy引导程序:

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

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


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

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

就像丹尼尔的回答一样。。如果您正在进行实例注册,您也不需要AsSingleton,您不妨执行以下操作:

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

所以它只是根据需要创建的。

谢谢。我真的不确定这是如何工作的,因为文档似乎有点不清楚。