【发布时间】:2018-10-01 00:38:33
【问题描述】:
让我们简化我的应用程序:
我有两个棱镜模块:用于可视化一些数据的 shell 模块和第二个模块 - WCF 服务,它正在获取该数据(假设数据是某个寄存器的名称和值)。我的计划是将其设置为共享服务,并将其作为依赖项注入我的一个 shell 模块类。我的问题是,我不知道该服务引用应该在哪个类中:在模型中或在视图模型中(例如主窗口)。
我可以设置一个寄存器模型,它会自行获取其名称和值(使用对 WCF 服务的存储引用)。
但我不确定这是实现这一点的正确方法。我的代码:
//Bootstrapper.cs ->register WCF service in a container
RegisterTypeIfMissing(typeof(IDatabaseService ), typeof(DatabaseService), true);
这可能是我在 ViewModel 中引用的模型:
public class Register
{
IDatabaseService service; //reference to WCF service (which is in separate module)
public int RegisterValue { get; set; }
public string RegisterName { get; set; }
public Register(IDatabaseService _service) //this will be resolved in a container
{
service = _service;
}
}
【问题讨论】:
-
这都是非常主观的,对于软件工程堆栈交换站点来说可能更好。但是,如果您的意思是数据模型中的模型,请不要将其远离那里。根据您的架构和程序的大小,将其注入您的 VM 或者如果您有某种业务层可能更适合那里。但是,说了这么多,这都是主观的,我根本不知道您的要求和现有架构