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