Здравствуйте, 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>>