【发布时间】:2010-08-11 20:14:30
【问题描述】:
鉴于要求:
获取一个对象图,根据第二个字符串属性的 已处理 值设置所有枚举类型属性。约定规定源字符串属性的名称将是后缀为“Raw”的枚举属性的名称。
通过处理我们的意思是我们需要去除指定的字符等。
我查看了自定义格式化程序、值解析器和类型转换器,但似乎没有一个可以解决这个问题?
我们希望使用 AutoMapper 而不是我们自己的反射例程,原因有两个:a) 它在项目的其余部分中广泛使用,b) 它为您提供递归遍历 ootb。
-- 例子--
鉴于下面的(简单)结构,以及:
var tmp = new SimpleClass
{
CountryRaw = "United States",
Person = new Person { GenderRaw="Male" }
};
var tmp2 = new SimpleClass();
Mapper.Map(tmp, tmp2);
我们希望 tmp2 的 MappedCountry 枚举为 Country.UnitedStates,而 Person 属性的性别为 Gender.Male。
public class SimpleClass1
{
public string CountryRaw {get;set;}
public Country MappedCountry {get;set;}
public Person Person {get;set;}
}
public class Person
{
public string GenderRaw {get;set;}
public Gender Gender {get;set;}
public string Surname {get;set;}
}
public enum Country
{
UnitedStates = 1,
NewZealand = 2
}
public enum Gender
{
Male,
Female,
Unknown
}
谢谢
【问题讨论】:
-
你能举个例子说明你有什么以及你想映射什么
-
当然,已编辑原始帖子 :-)
标签: enums automapper valueinjecter