一直在我的INFRASTRUCTURE
模块中设置作为服务的接口。每个模块都会创建一个具体的服务类。
但这一次,我需要一个必须使用所有模块的服务
在基础设施方面我有:
public interface IApplicationMenuRegistry
{
void RegisterMenuItem(string menuItemName, string description, Type viewType);
}
每个moduleInit都会收到此界面,并注册一个菜单项。
我应该在哪里创建具体服务ApplicationMenuRegistry
?在基础设施?或者在另一个模块中?
答案 0 :(得分:2)
最正确的答案是:“这取决于”。有时您应该在“基础设施”中创建具体服务,有时在其他地方。但我建议您查看DI frameworks,有lot of different .NET implementations。让DI框架关心如何向目标对象提供IApplicationMenuRegistry
实现。
答案 1 :(得分:0)
as ie。说 - 这取决于。理想情况下 - 我认为它应该在单独的模块中,您应该使用Module dependencies来指定所有模块依赖于一个“启动”模块。或者,您可以以某种方式初步启动引导程序中的“共享”模块,并在此之后初始化所有其他模块。 “学术方式”是“模块依赖”,但现实生活总是更复杂;)