0

一直以来,在我的INFRASTRUCTURE模块中设置作为服务工作的接口。每个模块创建该服务的具体类。

但这一次,我需要一个必须使用所有模块的服务

在基础设施方面,我有:

public interface IApplicationMenuRegistry
{
    void RegisterMenuItem(string menuItemName, string description, Type viewType);
}

每个moduleInit 接收这个接口,并注册一个菜单项。

我应该在哪里创建具体服务ApplicationMenuRegistry?在基础设施中?还是在另一个模块中?

4

2 回答 2

2

最正确的答案是:“视情况而定”。有时您应该在“基础设施”中创建具体服务,有时在其他地方创建。但我建议您查看DI 框架,有很多不同的 .NET 实现。让 DI 框架关心为IApplicationMenuRegistry目标对象提供实现。

于 2012-09-08T17:42:58.100 回答
0

作为即。说 - 这取决于。理想情况下 - 我认为它应该在单独的模块中,并且您应该使用模块依赖项来指定所有模块都依赖于一个“启动”模块。或者,您可以以某种方式首先在引导程序中初始化您的“共享”模块,然后再初始化所有其他模块。“学术方式”是“模块依赖”,但现实生活总是更复杂;)

于 2012-09-12T08:31:54.333 回答