【发布时间】:2015-04-01 07:23:27
【问题描述】:
我在我的项目中使用 IoC 容器,但我的项目包含许多子模块。我想使用一个基本的 IoC 模块。 例子: 我在子模块 A 中有两个接口 它是 IOne 和 ITwo 接口
public interface ITwo
{
// some code
}
public interface IOne
{
// some code
}
还有我的 SimpleInjectorRegisterTypes 类
public class SimpleInjectorRegisterTypes : ISimpleInjectorRegistration
{
public void Register(Container container)
{
container.RegisterSingle<ITwo, Two>();
container.RegisterSingle<IOne, One>();
}
}
还有主类,我在其中使用我的逻辑
private static IOne _one;
private static ITwo _two;
static void Main(string[] args)
{
Container container = new Container();
new SimpleInjectorRegisterTypes().Register(container);
_one= container.GetInstance<IOne>();
_two= container.GetInstance<ITwo>();
}
很好,但我有子模块 B 我有接口 IThree 和 TFour 还有 SimpleInjectorRegisterTypes 和主类。 如何为我的所有子模块编写一个通用的 IoC 容器? 附言对于 IoC,我使用 bootstrapper
【问题讨论】:
-
为什么要在多个地方注册依赖项?为什么不在您的应用程序入口点执行所有“引导”?
-
所以你有:一个容器,你注册你的接口/类对,然后你有一个接口/类对只是做所说的注册 - 然后你只使用所有这些来创建你的接口的两个静态实例在静态类中......这不是有点矫枉过正吗?
-
我有独立的模块,并且我已经(如果可能的话)创建了一个整体的 IoC 容器,该怎么做?
标签: c# ioc-container bootstrapper