我正在使用C#,WPF和Prism。我想创建模块化应用程序,但我有问题。我不知道从数据库中获取数据的位置。这是我的解决方案:
我有两个模块 - ModuleMainFilter
和ModuleResults
。我最初的想法是,我将从模块通过Infrastructure
传递到我当前位于DensoMSBFrontDataClient
的数据库。但我无法做到这一点,因为由于循环依赖问题,我无法在DensoMSBFrontDataClient
中引用Infrastructure
。那么我应该放置我的数据库?我无法提出任何有用的想法。
答案 0 :(得分:1)
我认为你应该做的是将数据库实现放在它自己的模块中,并将一个接口实现添加到Infrastructure模块。然后,databasemodule应实现此接口,并且所有使用数据库服务的模块都应该引用Infrastructure,特别是此接口。看看StockTraderRI以及他们如何实施MarketFeedService。
答案 1 :(得分:1)
如果我理解正确,请点击您应用的分层架构:
DensoMSBFrontDataClient
Modules
Infrastructure
DensoMSBFrontDataClient
引用*Modules
,它引用基础结构并将此公共组件用作数据交换。命令链自上而下。因此,您的数据库应该放在最低层,并且只能从那里访问。否则你总会遇到这种问题。