我在使用Unity和WPF时遇到了一些问题。该场景是我有一个遵循MVVM设计模式的WPF应用程序。 A有一个名为ViewKDI的模块。在这个模块中,我有一个名为ViewKDIService的服务,ViewKDIService服务使用另一个名为UserService的服务。统一返回服务的新实例
每次我加载模块ViewKDI我希望Unity返回ViewKDIService和UserService的新实例。
我已经把下面的外壳引导程序:
Container.RegisterType<IUserService, UserService>();
在ViewKDI模块我已经把以下内容:
Container.RegisterType<IViewKDIService, ViewKDIService>();
每次ViewKDI模块加载ViewKDIService构造函数被调用。但是,UserService构造函数只是第一次调用,这意味着我没有获得UserService的新实例。
我需要统一性给我一个UserService的新实例,以便我可以与应用程序的其余部分分开管理此会话。
任何想法?
感谢 费萨尔
你能否提供更多关于何时解决每种类型的细节? IUserService是ViewKDIService的依赖项吗? – 2009-12-11 16:45:56
我没有明确地调用解决方案,我只是将接口放在我的ViewModel的构造函数中,然后让Unity解决它们。 IUserService不依赖于IViewKDIService。 – Faisal 2009-12-11 16:59:45
查看哪些对象IUserService和IViewKDIService被注入以了解它们的生命周期会很有帮助。例如都注入到您的ViewModel或只是IUserService? – 2009-12-11 17:16:51