我可以为AutoMapper';提供映射命名提示吗;s ForMember as Dictionary<;字符

本文关键字:ForMember as Dictionary 字符 lt 提示 AutoMapper 我可以 映射 | 更新日期: 2023-09-27 18:27:34

或者还有其他解决方案。。。我的解释如下:我有一个名为Customer的类型化对象(例如),它有很多属性,我想将它映射到动态Expando对象或IDictionary。我的意思是,这将是所需的解决方案,但第二种类型也可以是静态类型。但无论如何,这里有更多细节:

src对象将是

Customer
  -> Name
  -> LastName
  -> DOB
  -> FirstPurchaseDate
  -> LastVisitHompage

还有20种房产。。。

现在我想拿一本字典它定义了我的属性名称映射。

Name     = Line1TextField
LastName = Line17TextField
DOB      = Line3DateField
...

等等

现在我想传入src对象(我的客户),并根据我的定义字典得到一个具有属性的expando对象。

我最初认为我可以在foreach循环中使用ForMember方法,但ForMember是用lambda表达式强类型的。所以有点像ForMember(IDictrionary)或ForMember

我不得不承认,我对AutoMapper了解不够(但在对象映射方面听到了很多好的东西)。那么,我的用例是一个我会使用AutoMapper的情况吗?

我可以将第二种类型也设为静态类型,因为我认为AutoMapper不适用于动态类型。但核心问题是,我是否可以在字典中定义我的成员字符串映射,或者从xml中读取它以将其传递给我的映射?这有道理吗?是否有其他方法可以在不手动连接所有类的所有成员的情况下定义映射?

还是我只需要在映射字典上写一些左右代码?带着一些思考或表情?

很抱歉,我现在不能说得更准确,也没有任何代码。。。

谢谢你的帮助或意见?

我可以为AutoMapper';提供映射命名提示吗;s ForMember as Dictionary<;字符

在推特上与AutoMapper的作者Jimmy Bogard进行了更多的研究和愉快的交谈后。我意识到,如果目标对象和源对象的命名约定相同,AutoMapper的主要目的和有用性是映射对象。

或者至少当你能够定义一个约定的时候。因为在我的例子中不是这样的,所以AutoMapper对此并不那么有用。所以我最终编写了自己的投影代码。