Учитывая требование:
Возьмите граф объекта, установите все свойства типа перечисления на основе обработанного значения второго свойства строки. Согласно соглашению, имя свойства исходной строки должно совпадать с именем свойства enum с постфиксом «Raw».
Под обработкой мы подразумеваем, что нам нужно будет удалить указанные символы и т. Д.
Я рассмотрел специальные средства форматирования, преобразователи значений и преобразователи типов ни один из них не подходит для этого?
Мы хотим использовать AutoMapper вместо нашей собственной процедуры отражения по двум причинам: а) он широко используется в остальной части проекта и б) дает возможность рекурсивного обхода ootb.
- Пример -
Учитывая (простую) структуру ниже, и это:
var tmp = new SimpleClass
{
CountryRaw = "United States",
Person = new Person { GenderRaw="Male" }
};
var tmp2 = new SimpleClass();
Mapper.Map(tmp, tmp2);
мы ожидаем, что перечисление MappedCountry tmp2 будет 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
}
Спасибо