Re: Проблема с приведением
От: Alexey Axyonov Украина  
Дата: 12.11.05 09:08
Оценка:
Здравствуйте, <Аноним>, Вы писали:


А>
А>// 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>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.