【发布时间】:2015-07-16 10:25:04
【问题描述】:
我有 n 层应用程序(实体层 - 业务层 - Web 层)。我喜欢使用 ViewModels(在 Web 层)有下拉列表等,以丰富基本的业务对象(实体层)到 UI。为此,我在每个具有下拉列表或默认值的 ViewModel 中使用 BaseViewModel(Web 层),它允许我只调用方法来填充数据,非常有用。
现在我想找到一种聪明的方法来避免将所有实体层属性重新输入到 VM。
目前,这是我所做的一个示例:
型号:
Class CustomObjectModel {
public int id {get;set;}
public string name {get;set;}
public string description {get;set;}
}
虚拟机:
public Class CustomObjectViewModel : BaseViewModel {
public int id {get;set;}
public string name {get;set;}
public string description {get;set;}
public List<possibleNames> string {get;set;}
}
基础虚拟机:
public Class BaseViewModel{
public List<string> FillNames(){...}
public List<string> DefaultName(){...}
}
而且我不想将模型属性重新输入到 VM...如何?
我可以使用继承:CustomObjectModel 继承 BaseViewModel,然后 CustomObjectViewModel 继承 CustomObjectModel,但是从 Entites 项目中引用 WEB 确实不干净,这让我感到不舒服。
感谢帮助我:-)
【问题讨论】:
标签: c# inheritance design-patterns architecture