鉴于要求:
获取对象图,根据第二个字符串属性的处理值设置所有枚举类型属性.约定规定源字符串属性的名称将是具有后缀"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);
Run Code Online (Sandbox Code Playgroud)
我们希望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 = …Run Code Online (Sandbox Code Playgroud)