棱镜:新项目与新模块以及模块之间的通信

本文关键字:模块 之间 通信 新项目 新模块 棱镜 | 更新日期: 2024-10-31 08:05:57

我正在做一个棱镜/WPF项目,我已经有一个框架,其中包含三个模块,所有这些模块都实现了MVVM模式。每个模块都有自己的用户界面,用户可以在其中提供一些数据,然后将这些数据传送到服务器。现在,我的问题是:Prism应用程序中的模块是否仅引用用户界面的不同部分?我还可以创建一个模块来实现与服务器的通信,还是应该为此创建另一个项目?假设与服务器的通信是在模块中实现的,我有一个名为 UserAccount 的类,所有其他具有用户界面的模块都需要访问它。用户帐户应该是服务器通信模块的一部分还是基础设施的一部分?

在我看来,我应该在模块中实现与服务器的通信,并且模块应该包含像 UserAccount 这样的类,但基础结构应该包含创建的 UserAccount 对象,以便可以从所有其他模块访问它。这是一个正确的方法吗?

另外,您能否推荐任何处理此类问题的棱镜文档?

棱镜:新项目与新模块以及模块之间的通信

模块之间共享的所有类型都应位于单独的共享程序集中(基础结构为您扮演此角色?这包括接口定义和将携带信息的所有自定义类型。

是的,您的服务器通信模块

听起来像是它自己的模块的绝佳候选者,尤其是在服务器通信中涉及共享资源的情况下。

编辑 - 共享程序集

  • 程序集 1:导入一个IMyServiceModule实例
  • Assembly2:实现IMyServiceModule并导出实例
  • 程序集
  • 3:共享程序集。定义IMyServiceModule接口和支持类。由程序集 1 和程序集 2 引用

为什么?允许模块松散耦合并避免循环引用。