Здравствуйте, <Аноним>, Вы писали:
А>А>// BaseMemberMapper.MapFrom(Type type, Attribute[] attributes, object value, bool trimmable)
А>// ...
А>//
А>Type underlyingType = Enum.GetUnderlyingType(type);
А>if (underlyingType != value.GetType())
А> value = Convert.ChangeType(value, underlyingType);
А>value = Enum.Parse(type, Enum.GetName(type, value));
А>
А>Не работает для Flags перечислений. Выделенная строчка возвращает Null. Из базы приходит int. Решил проблему через IMapSettable, на как-то это все не очень здорово. Идеи есть?
Вот так должно работать:
// BaseMemberMapper.MapFrom(Type type, Attribute[] attributes, object value, bool trimmable)
// ...
//
Type underlyingType = Enum.GetUnderlyingType(type);
if (underlyingType != value.GetType())
value = Convert.ChangeType(value, underlyingType);
value = Enum.ToObject(type, value);
... << RSDN@Home 1.2.0 alpha rev. 619>>