我想用容器注册 ShellModel,所以我可以在另一个模块中的 ViewModel 中解决它,然后我可以在 ViewModel 中更改窗口样式。但是我无法在 ViewModel 中获得相同的 ShellModel 实例,它总是返回 ShellModel 的新实例。所以我在下面写了一个简单的测试,我对此感到困惑。
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
}