【发布时间】:2013-01-19 11:31:01
【问题描述】:
我有两个具有确切属性的对象(类)。说:
class class1
{
public string prop1{get;set;}
public string prop2{get;set;}
}
class class2
{
public string prop1{get;set;}
public string prop2{get;set;}
}
我想使用反射映射这些类,我已经使用了AutoMapper,但它不适用于我的情况,因为我在对象中有对象......
使用反射时我需要传递属性名称,我不想一个一个地这样做有没有其他方法:
PropertyInfo propinfo = listToReturn.GetType().GetProperty(nameofproperty);
编辑::
这是我用 automapper 尝试过的:
internal static DTO_objectclass ConvertFOS(objectclass q)
{
DTO_objectclass resultsToReturn = new DTO_objectclass();
AutoMapper.Mapper.CreateMap<objectclass , DTO_objectclass >();
resultsToReturn = AutoMapper.Mapper.Map<objectclass , DTO_objectclass>(q);
return resultsToReturn;
}
这一直有效,直到涉及到我在 objectclass 中有类似内容的属性:
property class3 parentClass{get; set;}
在 DTO_objectclass 我得到了:
property guid parentClass{get; set;}
我在哪里得到转换失败的异常..
Trying to map System.Guid to parentclient.\nUsing mapping configuration for DTO_objectclass to objectclass \nDestination property: ParentClass\nException of type 'AutoMapper.AutoMapperMappingException' was thrown.
【问题讨论】:
-
你为什么要那样做,那是在浪费代码。
-
不要这样做,这是未成熟的优化,使用反射会降低性能
-
您为什么不发布您的 Automapper 问题,以便有人可以帮助解决这个问题,而不是试图重新发明它已经在做的事情?
-
那我该怎么做
-
@IanMercer 将编辑我的帖子并添加自动映射器
标签: c# object reflection mapping