.net - Windows 窗体中的 MVP 和 IOC?

标签 .net winforms inversion-of-control mvp

我已经开始在我的几个表单的 Windows 表单应用程序中使用 MVP 模式。这些表单创建一个演示者并将它们自己传回给演示者。

我没有使用任何特定的框架,表单仍然可以打开其他表单。

我是否应该更改此设置以便演示者可以打开其他表单(通过 View )?我相信必须使用 IOC 框架来做到这一点?

这可能会节省我在 UI 中打开相关表单的逻辑,并允许我从表单中删除对演示者的引用。

最佳答案

您应该有一个单独的类来负责创建/管理表单。我建议使用命令模式来调用打开新表单的代码。它最终会更好地扩展,您可以更改 Command 实现来做不同的事情。在我的项目中,我只是在表单本身中进行数据更改,但是任何与“应用程序”交互的东西都被委托(delegate)给一个 Command 对象。

您不需要 IOC 框架来执行此操作,但它会有所帮助。如果你只是有简单的需求,你可以保持简单。

我的网站上有一个 WinForms MVP 示例:ModelViewPresenter .我不使用任何 IOC 容器,但构造代码以便使用一个快速跳跃。

关于.net - Windows 窗体中的 MVP 和 IOC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/282628/

相关文章:

c# - 基于具体类型在 Unity 中注册泛型类型

c# - 有人可以解释 Microsoft Unity 吗?

c# - 如何在 c#.net 中将数据从 postgres 检索到文本框

c# - 使用c#将数据导入Hadoop

c# - 如何注释 DTO 以启用不区分大小写的映射?

c# - 有没有办法导致传递给 Control.BeginInvoke 的委托(delegate)的类型推断?

c# - 在哪里可以找到模仿 iTunes 堆栈/填充/进度条的 WinForms 控件?

c# - 从 C++/CLI 调用 C# dll 时出现 FileNotFoundException

winforms - TreeView 在 Ctrl+Click 上重新获取焦点

spring - IoC如何为bean创建实例