Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 属性名称不同时自动映射的使用_C#_Properties_Automapper - Fatal编程技术网

C# 属性名称不同时自动映射的使用

C# 属性名称不同时自动映射的使用,c#,properties,automapper,C#,Properties,Automapper,我们正在使用Codeplex的AutoMapper,对我来说,目标对象的所有属性都以“Field”结尾,即cityField,而源对象只有city 我可以使用下面的代码来实现,但是所有的属性都只是以“Field”作为后缀,共有20个属性 .ForMember(dest => dest.cityField, opt => opt.MapFrom(origin => origin.City)); 有没有其他方法可以在映射时忽略“Field”单词,这样它就可以在不使用.ForMem

我们正在使用Codeplex的AutoMapper,对我来说,目标对象的所有属性都以“Field”结尾,即cityField,而源对象只有city

我可以使用下面的代码来实现,但是所有的属性都只是以“Field”作为后缀,共有20个属性

.ForMember(dest => dest.cityField, opt => opt.MapFrom(origin => origin.City));

有没有其他方法可以在映射时忽略“Field”单词,这样它就可以在不使用.ForMember()的情况下映射20次?

我认为您必须实现自己的方法来解决这个问题。

您可以尝试识别后缀:

Mapper.Initialize(cfg => {
    cfg.RecognizePostfixes("Field");
    cfg.CreateMap<Source, Dest>();
});
Mapper.Initialize(cfg=>{
cfg.识别后缀(“字段”);
CreateMap();
});
识别前缀也适用于本地配置文件,如果这只是一组映射的话