抱歉这个noob问题。我开始在Silverlight中使用Unity 2.0容器,并在其中添加一些单例。为了让单身人士工作,我是否需要在我的应用程序中只有一个容器实例?我假设每当我想查找我的单身时,创建一个新的单位容器实例将导致单独的容器与单独的单例。
谢谢, -Jon
答案 0 :(得分:10)
您需要一个容器的单个实例来实现单例行为。 您还需要使用ContainerControlledLifetimeManager注册单例类。
答案 1 :(得分:9)
这有点令人困惑,因为当我们在DI术语中提到单身人士时,我们的意思与Singleton design pattern并不相同。
基本上, Singleton Lifestyle 在同一个容器中表现为(模式)Singleton ,但如果您从容器的新实例创建并使用它,那么将得到一个不同的实例。
您可以说 Singleton Lifetime 是本地范围的 Singleton。
总结容器使用情况,您不需要Singleton容器,但需要单容器实例才能使用Singleton Lifestyle。
为了让事情更加混乱,在Unity中,Singleton的生活方式被称为ContainerControlledLifetimeManager
......