我有一個包含成員變量兩種語言領域模型,是這樣的:Automapper條件語言映射
public class Resource
{
public string SwedishName;
public string EnglishName;
}
爲了展示我有一個簡化的模型,被輸送到一個JSON序列:
[JsonObject]
public class JsonResource
{
[JsonProperty]
public string Name;
}
這些映射與automapper像這樣:
Mapper.CreateMap<Resource, JsonResource>()
.ForMember(dest => dest.Name, opt => opt.MapFrom(src => src.SwedishName));
我的問題是,如果這可以用更有條件的方式來完成,具體取決於要求哪種語言?我最初的想法,是沿着這些線:
string lang = "en";
json = Mapper.Map<Resource, JsonResource>(resource, lang)
雖然,似乎不可能有幾個相同類型的映射?
目前林傾向於,只是定義爲其他語言的另一個相同的演示模型:
if (lang == "en")
json = Mapper.Map<Resource, EnglishJsonResource>(resource)
else
json = Mapper.Map<Resource, JsonResource>(resource)
這是一個可行的解決方案,或者是有沒有更好的辦法?
或者您可以在.MapFrom()中實現同樣的效果: .ForMember(dest => dest.Name,opt => opt.MapFrom(src => isEnglish?src.EnglishName:src.SwedishName)) – Dima 2012-04-17 10:28:10