【发布时间】:2012-07-25 17:18:53
【问题描述】:
我有一个相当冗长的对象,其中包含很多属性,我用它们将数据传输到 SQL 数据库。我现在想提供这个对象的“轻量级”版本,它只使用详细对象的一些属性。
我使用轻对象通过 REST api 提供,并使用详细对象来传输数据,因此理想情况下我也可以反转该过程(使用轻对象的现有属性覆盖详细对象的属性,然后保存到数据库)。
所有这些属性都将具有相同的数据类型,只要它们存在于灯光对象中。
简单示例:
class Verbose {
public string email;
public Guid id;
}
class Simple {
public string email;
// don't show Guid
}
现在我想将 Verbose 类型的所有对象转换为 Simple 类型,放弃所有不必要的属性 - 有没有简单的方法可以做到这一点?
理想情况下,这也应该是可逆的。
【问题讨论】:
-
难道你不能有一个 Verbose.ToSimple() 方法来创建并返回一个带有适当数据的新 Simple 对象吗?反之亦然(我猜你需要有默认/空值)
-
这也是一个选项,但是每次更改为数据库对象时我都必须更改它。我的目标是在 Simple 对象类型中定义我想要公开的属性,然后自动将映射从 Verbose 委托给 Simple。
-
在我的答案中的链接中编辑
标签: c#