谁能想到将 IOC 放入控制台应用程序的好解决方案?
目前我们只是使用具有以下方法的静态类:
public static T Resolve<T>()
{
return dependencyResolver.Resolve<T>();
}
我希望体验是无缝的,但想不出从控制台应用程序实现这一点的方法。
谁能想到将 IOC 放入控制台应用程序的好解决方案?
目前我们只是使用具有以下方法的静态类:
public static T Resolve<T>()
{
return dependencyResolver.Resolve<T>();
}
我希望体验是无缝的,但想不出从控制台应用程序实现这一点的方法。
您将不得不在Resolve<T>()
某处进行服务定位调用 ( )。诀窍是让它尽可能不碍事。对于控制台应用程序,此引导发生在Main()
方法中。在那里做,并尽量减少其他地方的那些 Resolve 调用,你会很棒的。对于大多数依赖项,使用构造函数注入。
控制台应用程序对 IoC 的 Web 或表单应用程序没有任何限制。您可以使用任何您的选择(Spring、Ninject、Unity 等)。它们中的大多数都可以在您的控制台应用程序外部使用 XML 文件进行配置,而像 Ninjector 这样的一些需要在您的应用程序内部进行配置。
我从控制台应用程序中使用了 Spring.NET,没有任何问题。你只需要把它指向你的配置文件,它就会连接所有的依赖项。当然,您如何处理这些对象取决于您的控制台应用程序正在尝试做什么。
签出 Microsoft Unity。