我正在研究Prism / WPF项目,我已经拥有一个包含三个模块的框架,所有模块都实现了MVVM模式。每个模块都有自己的用户界面,用户可以在其中提供一些数据,然后可以将这些数据传送到服务器。 现在,我的问题是:Prism应用程序中的模块只涉及用户界面的不同部分吗?我是否还可以创建一个可以实现与服务器通信的模块,还是应该为此创建另一个项目? 假设与服务器的通信是在一个模块中实现的,我有一个名为UserAccount的类,所有其他具有用户界面的模块都需要访问它。 UserAccount应该是服务器通信模块的一部分还是Infrastracture的一部分?
在我看来,我应该在模块中实现与服务器的通信,模块应该包含像UserAccount这样的类,但是基础结构应该包含创建的UserAccount对象,以便可以从所有其他模块访问它。 这是一个正确的方法吗?
另外,您能推荐一些处理这类问题的棱镜文档吗?
答案 0 :(得分:1)
模块之间共享的所有类型都应位于单独的共享程序集中(Infrastructure为您提供此角色?)。这包括接口定义和将携带信息的所有自定义类型。
是的,您的服务器通信模块听起来非常适合作为自己的模块,特别是如果服务器通信中涉及共享资源的话。
编辑 - 共享程序集
IMyServiceModule
IMyServiceModule
并导出实例IMyServiceModule
接口和支持类。由Assembly1和Assembly2引用为什么呢?允许松散耦合模块并避免循环引用。