Re: IMapGettable хочется
От: oleksab Украина  
Дата: 08.11.05 16:56
Оценка:
Здравствуйте, oleksab, Вы писали:

Достаточно ли будет переписать в MapDescriptor методы GetFieldValue?
        object IMapDataSource.GetFieldValue(int i, object entity)
        {
            IMemberMapper mm = (IMemberMapper)_memberList[i];
            
            IMapGettable mg;
            if ((mg = entity as IMapGettable) != null)
            {
                object value;
                if (mg.GetField((this as IMapDataSource).GetFieldName(i), out value))
                    return value;
            }
            return mm.GetValue(entity);
        }

        object IMapDataSource.GetFieldValue(string name, object entity)
        {
            IMemberMapper mm = this[name];

            IMapGettable mg;
            if ((mg = entity as IMapGettable) != null)
            {
                // TODO : should mm be tested for null ?
                object value;
                if (mg.GetField(name, out value))
                    return value;
            }
            return mm != null ? mm.GetValue(entity) : null;
        }

и добавить
    public interface IMapGettable
    {
        bool GetField(string fieldName, out object value);
    }

?

Неудобно только то, что всем out параметрам нужно будет явно присваивать значение в реализации GetFieldstring fieldName, out object value).
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.