我必须使用prism模块,这两个模块都依赖于其他提供的服务。有没有办法以安全的方式呈现相互依赖?我曾考虑将它们组合成一个单独的模块,但它们实际上并没有逻辑组合。
顺便说一句,我知道MEF可以做到这一点;我知道MEF太棒了!我喜欢MEF。我无法切换到该技术,因为它需要在框架和IDE中进行升级,我现在无法负担(时间紧迫)。如果您遇到与我相同的麻烦,请查看MEF。它对我来说很晚;救你自己!
答案 0 :(得分:3)
在我看来,逻辑解决方案是将这两个模块之间共享的服务提取到第三个模块中。然后,您的两个当前模块可以安全地依赖于共享模块,您没有循环依赖关系和一个很好的分离项目结构。
任何原因都无法做到这一点?
答案 1 :(得分:0)
我想出了该怎么做。初始化时,演示服务不需要超时服务,所以我在一个惰性属性中解决了它。
public ITimeout Timeout
{
get
{
if (_timeout == null)
_timeout = _serviceLocator.GetInstance<ITimeout>();
return _timeout;
}
}
由于超时服务是在其模块初始化时注册的,因此在需要时可以使用此属性。它不理想,但它的工作原理。这个故事的寓意与MEF一致。
感叹!