有人能想到将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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top