将自定义对象属性映射回原始对象
map custom object properties back to original object
有没有办法将一个自定义对象属性关联到另一个自定义对象属性,以便有一种简单的转换方法?
例如:
我有一个名为 degree 的对象,它有两列:TypeID、TypeName
我有另一个名为 typelist 的对象,它也有两列:_id, _typename
我希望能够执行以下操作:degree _dg = (degree)typelistitem
而无需明确说明 _dg.TypeID = typelistitem._id
C# 语言中没有内置任何内容。
当然,您可以编写一个辅助方法,为其提供从 class X 属性到 class Y 属性的映射,但有什么意义呢?比较:
// fake syntax, this is not really possible
y = makeCopy<Y>(x, {_id -> TypeId,
_typename -> TypeName});
和
y = new Y();
y._id = x.TypeId;
y._typename = x.TypeName;
前者真的更具可读性还是更简洁?无论如何,您需要写下 X 的哪个 属性 映射到 Y 的哪个 属性,而后一个示例仅向每行添加 8 个字符的开销(y.? = x.?;
),所以我真的不要认为更通用的解决方案值得付出努力。
有没有办法将一个自定义对象属性关联到另一个自定义对象属性,以便有一种简单的转换方法?
例如:
我有一个名为 degree 的对象,它有两列:TypeID、TypeName 我有另一个名为 typelist 的对象,它也有两列:_id, _typename
我希望能够执行以下操作:degree _dg = (degree)typelistitem
而无需明确说明 _dg.TypeID = typelistitem._id
C# 语言中没有内置任何内容。
当然,您可以编写一个辅助方法,为其提供从 class X 属性到 class Y 属性的映射,但有什么意义呢?比较:
// fake syntax, this is not really possible
y = makeCopy<Y>(x, {_id -> TypeId,
_typename -> TypeName});
和
y = new Y();
y._id = x.TypeId;
y._typename = x.TypeName;
前者真的更具可读性还是更简洁?无论如何,您需要写下 X 的哪个 属性 映射到 Y 的哪个 属性,而后一个示例仅向每行添加 8 个字符的开销(y.? = x.?;
),所以我真的不要认为更通用的解决方案值得付出努力。