1
我是使用Unity和IoC/DI概念的新手。我通过在考试中通过James Kovacs在dnrTV上的秀展开自己的创意。收到我使IUnityContainer对象使用Singleton模式?
他的示例将Container作为单例通过IoC类中的静态方法访问,以便您可以在启动时注册类型并在整个应用程序中解析类型。
我知道这不是全功能,主要是显示IoC的概念。
我现在正试图在项目中使用Unity。
在我的主要()我创建一个新的容器,但是一旦我的WinForms打开,容器超出范围并处置。在程序后面,当我尝试解析类型时,我不再拥有原始容器及其注册类型。
是否有我缺少的概念或实现构造?
我现在的想法是创建这样的:
public static class Container
{
private static readonly object syncRoot = new object();
private static volatile IUnityContainer instance;
public static IUnityContainer Instance
{
get
{
if (instance == null)
{
lock (syncRoot)
{
if (instance == null)
{
instance = new UnityContainer();
}
}
}
return instance;
}
}
}
我敢肯定,这将工作,它只是看起来不正确。
谢谢
基思
谢谢你,我不是配置我的容器在静态类中。我认为这使我可以灵活地在测试情况下更改配置,而不用在测试中使用“生产”配置时自动注入配置。 – 2009-02-25 15:31:19