c# - 使用 DTO 和 WPF 时是否需要实现 INotifyPropertyChanged?

标签 c# wpf dto

我的问题很简单,在标题中已经问过了。

这是上下文:我有一个包含实体和存储库的域。查询结果映射到 DTO 并发送到 GUI。

GUI 是使用 WPF 实现的,对于映射,我需要实现 INotifyPropertyChanged 的​​类。

我的第一个想法是让 DTO 实现这个接口(interface),因为我预见到要将我的 DTO 再次映射到实现 INotifyPropertyChanged 的​​项目中需要做很多工作。

这是一个好的做法吗?它有我没见过的陷阱吗?这种情况的“官方”良好做法是什么?

最佳答案

DTO 应该是非常简单、轻量级的数据传输对象。因此,除了他们的数据之外,我不会在他们身上实现任何东西。另外,我相信如果将类序列化到 WCF 服务器或从 WCF 服务器序列化,属性都需要是公共(public)的,因此您不能将 Id 之类的东西设置为只读

我会创建 Model 类来实现 INotifyPropertyChangedIDataErrorInfo 用于属性更改通知和验证目的,并让它们在构造函数。使用类似 AutoMapper 的东西将使 DTO 到模型的映射变得非常简单

关于c# - 使用 DTO 和 WPF 时是否需要实现 INotifyPropertyChanged?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7205174/

相关文章:

c# - 如何一劳永逸地从 VS Team Services 构建到 Azure Web 应用程序?

c# - [Serializable] 是否适用于继承的类?

c# - Windows Phone 8.1 中的图像缓存

java - 如何在 Spring Boot Rest API 中的 BeanUtils.copyProperties 期间从 String 转换为 enum

c# - 在三层项目中放置 DTO/POCO

c# - 在 C# 中使用用户身份验证的 cURL

c# - System.IndexOutOfRangeException 在 itextsharp 中添加图像

c# - WPF WindowChrome : Edges of maximized Window are out of the screen

wpf - 将 wpf listview 绑定(bind)到数据集......可能......?

nhibernate - 在不触发延迟加载或急切加载的情况下将 NHibernate POCO 复制到 DTO