【问题标题】:ViewModel that use BaseViewModel and inherit of Model使用 BaseViewModel 并继承 Model 的 ViewModel
【发布时间】: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


    【解决方案1】:

    您可以使用 AutoMapper http://automapper.org/ 或类似的类似 ExpressionMapper http://www.codeproject.com/Tips/1009198/Expressmapper-The-New-NET-Mapper

    【讨论】:

    • 我的问题是我不想在viewmodel中用其他术语重写id、name、description。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-23
    • 2021-09-24
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多