2013-05-10 56 views
0

我想註冊ShellModel與容器,所以我可以解決它在另一個模塊中的ViewModel,然後我可以更改ViewModel中的窗口樣式。但是我無法在ViewModel中獲得同樣的ShellModel實例,它總是返回ShellModel的新實例。所以我在下面寫一個簡單的測試,我對此感到困惑。無法通過使用RegisterInstance獲得相同的實例

public Shell() 
    { 
     InitializeComponent(); 
     var shellModel = new ShellModel(); 
     IUnityContainer container = new UnityContainer(); 
     container.RegisterInstance<ShellModel>(shellModel); 
     Console.WriteLine(container.Resolve<ShellModel>().GetHashCode());//41837403 
     Console.WriteLine(container.Resolve<ShellModel>().GetHashCode());//41837403 
     IUnityContainer newcontainer = new UnityContainer(); 
     Console.WriteLine(newcontainer.Resolve<ShellModel>().GetHashCode());//3634967 
     Console.WriteLine(newcontainer.Resolve<ShellModel>().GetHashCode());//29355815 
    } 

回答

2

您使用兩個容器,並且你有沒有在第二容器中註冊一個實例,團結就是返回殼牌(查看?)型號的新實例。

相關問題