Добрый день
Есть классы, которые содержат в себе ссылки на объекты других классов, что-то типа:
class Classificator
{
int id;
string Title;
}
class SomeObject
{
int id;
string Title;
Classificator Type;
}
Загружать объекты в таком случае помогает реализация IMapSettable классом SomeObject
Хочется, чтобы при сохранении объектов (при создании параметров с помощью DbManager.CreateParameters(object source)) можно было также обойтись реализацией IMapGettable, в которой можно было бы переопределить метод GetField и внутри него можно было написать:
public bool GetField(string fieldName, out object value)
{
MapDescriptor md = MapDescriptor.GetDescriptor(this.GetType());
IMemberMapper mapper = md.GetMember(fieldName);
if (mapper != null && mapper.IsClass && mapper.MemberType.IsSubclassOf(typeof (Classificator)))
{
Classificator c = mapper.GetValue(this);
value = c.id;
return true;
}
return false;
}
Скажите пожалуйста, реализовано что-то подобное?
Может можно как-то по-другому? Подскажите пожалуйста, как?
Каковы шансы того, что если я напишу этот самый IMpaGettable, переделаю все места, где встречается IMapDataSource.GetFieldData и отдам автору исходники, подобный код попадет в основную ветку (а то merge-ить при новой версии не очень улыбается)?
Спасибо.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>