尝试自动映射一些对象。
源对象具有名称前带有_的属性,目标对象没有。是否有可能实现一次映射创建,自动映射程序将所有_properties映射到属性
适用于所有源类型。
class MyMapper<TFrom, TTo>{
TTo PerformMap(TFrom fromObject){
Mapper.CreateMap<From, To>(); // ???
TTo result = Mapper.Map<From, To>(fromObject);
//result.Id.ShouldBe(value from TFrom._Id);
return result;
}
}
class From
{
public int _Id { get; set; }
public string _Name { get; set; }
}
class To
{
public int Id { get; set; }
public string Name { get; set; }
}发布于 2009-08-01 22:25:08
我最近添加到AutoMapper中的一些东西可能会对您有所帮助--自定义命名约定。如果您查看主干(R107),请四处查找INamingConvention。现在,我有两个命名约定(PascalCase和lower_case_underscore),但实际上只需要找出正确的RegEx就可以了:
目前,命名约定是全局的和配置文件范围的。由于此功能是新特性,因此除了测试之外,没有任何其他文档。
发布于 2017-04-18 01:42:37
我就是这么做的
Mapper.Initialize(cfg =>
{
cfg.RecognizeDestinationPrefixes(new []{"_"});
cfg.RecognizePrefixes(new[] { "_" });
cfg.CreateMap<To, From>().ReverseMap();
});发布于 2009-04-27 01:33:40
为此,您可以添加自定义映射来解决此特定情况:
Mapper.CreateMap<From, To>()
.ForMember( dest => dest.Id, opt => opt.MapFrom( src => src._Id ) )
.ForMember( dest => dest.Name, opt => opt.MapFrom( src => src._Name ) );https://stackoverflow.com/questions/732446
复制相似问题