单例中的结构图返回多个实例我使用命名实例为同一个接口注册了5个派生类。所有这些类都注册为SingletonFor().Singleton().Use().Named("Derived1");For().Singleton().Use().Named("Derived2");For().Singleton().Use().Named("Derived3");有一个静态类可以根据输入解析实例。但我观察到每次调用ObjectFactory.GetInstance都会在每次请求时返回新实例而不是Singleton。应用程序中也没有线程。知道为什么会这样吗?编辑:静态解决方案助手会导致任何问题吗?这就是我解析实例的方式。Singleton在示例应用程序中运行良好,但在我的机器上不起作用。要添加更多详细信息-该项目是MVCWebAPI,我正在本地IIS上进行测试。我很确定应用程序中没有用户创建的线程。publicstaticclassResolver{publicstaticIBaseInterfaceGetHelper(stringinputParam){ifinputParamis"Case1"returnObjectFactory.GetInstance("Derived1")//Similarlyforotherinstances}}我会小心你正确使用依赖注入容器。例如,您在帖子中显示的Resolver类是否只是一种工厂或提供者?使用依赖注入时,需要保证并遵循RRR模式:注册、解析、发布。注册应该在您的应用程序的复合根中进行。对于ASP.NetMVC,这通常位于Global.asax中,例如在代码隐藏的Application_Start方法中。这应该只在每次应用程序池启动时发生一次(对于IIS)。如果您正在传递容器(或实例化容器并稍后进行注册和解析的对象)——您不应该这样做——您看到的这些“不同实例”可能来自两个不同的容器。即使你没有传递容器,如果你在某个地方实例化容器,在每次请求之后,容器都会被垃圾收集并在后续请求中重新创建,你可能会看到单例的“不同实例”被解析和实例化对象;同样,每个都来自容器的不同实例。验证这一点的一种方法是验证从容器解析的对象是否也来自同一容器实例。HTH。以上就是C#学习教程:Singleton中的结构图,返回多个实例共享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
