0

我在 C# winforms 应用程序中使用 MVP 模式并遇到了以下设计问题。我User在我的域中有一个类和一个UserCollectionDAO从数据库中加载所有用户的其他一些信息的类。当我通过演示者向我的视图展示一组用户时,我不想显示他们的所有属性。例如,我的用户具有以下属性:

class User
{
   public User(int id)
   {
      Id = id;
   } 

   public int Id { get; private set; }

   public string Name { get; set; }

   public LocationId { get; set; }
}

我想在我Listview的用户中显示的是名称和位置的名称,我可以从系统中的另一个数据结构中获得。同时我想在我的应用程序的其他区域使用 LocationId 和 Id。我已经阅读了可能需要使用的另一层,即 DTO 对象。你对此有什么看法,你能看到另一种实现我想要的方法吗?如何将信息从视图传递到 DTO 用户实例到域用户实例?

任何想法将不胜感激。

4

1 回答 1

1

通常,您会将域类/模型转换为 ViewModel(特定于特定视图的模型,隐藏模型的特定属性)。

领域服务层创建一个将模型转换为视图模型的方法,或者使用AutoMapper之类的库将其自动转换为您。您的域用户类上的某些属性可能需要公开(为什么不公开?)才能被 AutoMapper 自动复制。

进一步阅读:MVVM 模式

于 2012-11-23T17:22:13.470 回答