AutoMapper strings to enum descriptions

Учитывая требование:

Возьмите граф объекта, установите все свойства типа перечисления на основе обработанного значения второго свойства строки. Согласно соглашению, имя свойства исходной строки должно совпадать с именем свойства 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
}

Спасибо

5
задан Omu 29 January 2011 в 07:18
поделиться