Ситуэйшн следующий
Есть бизнес-объект. В него загружается что-то типа аттачмента. Т.е. он содержит поля имя и бинарные данные.
public class AttachDataBE : CustomBE
{
private byte[] _data;
private string _name = string.Empty;
[MapField(DBConst.MAP.ReadAttachData.ATTACH_NAME)]
public string Name
{
get
{
return _name;
}
set
{
_name = value;
}
}
[MapField(DBConst.MAP.ReadAttachData.ATTACH_DATA)]
public byte[] Buffer
{
get
{
return _data;
}
set
{
_data = value;
}
}
}
Так вот, когда производится загрузка данных в этот объект при помощи метода
ExecuteObject
то данные в поле Buffer не загружаются.
Происходит это по той причине, что в классе ObjectMapper, в методе
protected virtual bool GetIgnore(MemberAccessor memberAccessor)
{
MapIgnoreAttribute attr =
(MapIgnoreAttribute)memberAccessor.GetAttribute(typeof(MapIgnoreAttribute));
if (attr != null)
return attr.Ignore;
Type type = memberAccessor.Type;
return type.IsClass && type != typeof(string);
}
последняя строка вернёт true, т.к. массив — это класс.
Наверное, надо включить сюда обработку массивов.