将自定义对象属性映射回原始对象

时间:2015-06-17 05:18:22

标签: c# object properties casting mapping

有没有办法将一个自定义对象属性与另一个自定义对象属性相关联,以便有一种简单的方法?

例如:

我有一个名为degree的对象,它有两列:TypeID,TypeName 我有另一个名为typelist的对象,它也有两列:_id,_typename

我希望能够执行以下操作:degree _dg = (degree)typelistitem,而无需明确说出_dg.TypeID = typelistitem._id

1 个答案:

答案 0 :(得分:0)

C#语言中没有任何内置功能。

当然,您可以编写一个辅助方法,为它提供从X类属性到类Y属性的映射,但有什么意义呢?比较:

$("#search-box").attr("placeholder", "\uD83D\uDD0E search our catalog");

// fake syntax, this is not really possible
y = makeCopy<Y>(x, {_id -> TypeId,
                    _typename -> TypeName});

前者是否更具可读性或更简洁?你需要记下X的哪个属性被映射到Y的哪个属性,而后一个例子只为每一行(y = new Y(); y._id = x.TypeId; y._typename = x.TypeName; )添加了8个开销字符,所以我真的不认为更通用解决方案是值得的。