首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于WinForms建议的服务容器或WinForms

用于WinForms建议的服务容器或WinForms
EN

Stack Overflow用户
提问于 2011-04-06 12:43:24
回答 1查看 2.2K关注 0票数 1

我正在用WinForms编写一个应用程序,我想知道是使用IoC还是使用容器。

我们正在编写的是一个文本编辑器,用于我们自己的基本风格语言,用于计算费用等等。它类似于Notepad++,但功能和调试器不多。

我想知道我应该使用容器还是IoC,我应该选择哪一个。作为一个WinForms应用程序,在启动时需要做很多事情(加载语法引擎、UI配置等),您认为我甚至可以使用IoC吗?

使用容器,我可以使它成为一个静态类,只需执行Container.GetInstance(),但是当一些类依赖于其他类时,我无法理解如何连接一个IoC。

我还有很多命令想要使用COmmand模式,所以定义一个ICommand,并为特定区域使用ITextCommand、IFormulaCalculationCommand、IDebugCommand进行扩展。我如何使用IoC从其中一个命令中获取Tab中的活动文档?

我现在很困惑,我很抱歉。

这里有几个简短的问题,如果你不能清楚地回答上面的话:)

  • 最快和最简单的容器(ServiceContainer)是什么?
  • 您会为此Windows项目推荐像Autofac这样的IoC吗?
  • 您能否实现IoC,并仍然使用命令模式来调用命令并获取正在编辑的活动文档等等?
EN

回答 1

Stack Overflow用户

发布于 2011-04-06 12:52:45

首先,"IoC“的意思是"倒置控制”,它是一个与http://en.wikipedia.org/wiki/Dependency_injection高度相关的概念(而不是一个具体的软件组件)。容器(是一个软件组件)是一个依赖注入容器。因此,不仅"IoC“和”容器“这两个无法比较的实体,它们也在同一个”营地“内。

因此,这个问题最好用“我是否应该在我的应用程序中使用一个DI容器?”。

有几个DI容器你可以选择:微软联合,城堡温莎和NInject是几个比较有名的(我还没有意识到Autofac到现在)。选择一个,然后继续前进;在你的情况下不会有实际的区别,如果需要的话,你总是可以相对容易地切换到另一个。

此外,容器的一个主要卖点是,您不需要将它们连接起来以构造具有深度依赖树的类。容器会自动解析和注入依赖项;只有在需要对象构造时,才需要帮助,并将特定值传递给构造函数。

最后,DI容器与命令模式或类似的东西之间没有任何关系。如果希望获得活动文档,那么只要在变量更改时将活动文档存储在其中,并在需要时读取该变量即可。这个容器根本没有进入它。

更新:向高度相关的问题哪些.NET依赖注入框架值得研究?添加链接

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5566517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档