还是有其他解决方案...... 我的解释如下: 我有一个名为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读取它以将其传递给我的映射?这有道理吗? 是否有其他方法来定义我的映射而无需手动连接所有类的所有成员?
或者我在映射字典上写了一些左,右代码?有一些反思或表达吗?
很抱歉,我现在无法更准确或有任何代码......
感谢您的帮助或意见?
答案 0 :(得分:1)
在Twitter上与AutoMapper的作者Jimmy Bogard进行了一些更好的对话。我意识到AutoMapper的主要目的和用途是在目标对象和源对象命名约定相同时映射对象。
或者至少在您能够定义约定时。 由于在我的示例中不是这种情况,因此AutoMapper对此并不那么有用。所以我最终编写了自己的投影代码。