IOC用于控制台应用程序?

时间:2008-11-13 19:07:09

标签: c# dependency-injection inversion-of-control console-application

有人能想到将IOC变成控制台应用程序的好方法吗?

目前我们只是使用以下方法的静态类:

public static T Resolve<T>()
{
    return dependencyResolver.Resolve<T>();
}

我希望这种体验是无缝的,但却无法想到从控制台应用程序实现这一目标的方法。

4 个答案:

答案 0 :(得分:7)

您必须在某处进行服务定位符调用(Resolve<T>())。诀窍是让它尽可能地偏离正轨。对于控制台应用程序,此引导发生在Main()方法中。在那里做,并尽量减少那些Resolve调用,你会很棒。对于大多数依赖项,请使用构造函数注入。

答案 1 :(得分:3)

控制台应用程序对IoC的Web或表单应用程序没有任何限制。您可以使用任何选择(Spring,Ninject,Unity等)。其中大多数都可以在控制台应用程序外部使用XML文件进行配置,而像Ninjector这样的应用程序需要在应用程序内部进行配置。

答案 2 :(得分:1)

我从控制台应用程序中使用了Spring.NET,没有任何问题。您只需将它指向您的配置文件,它将连接所有依赖项。然后你用那些对象取决于你的控制台应用程序正在尝试做什么,当然。

答案 3 :(得分:1)

结帐Microsoft Unity