Здравствуйте, sLMoloch, Вы писали:
LM>Народ,
LM>Подскажите плиз какой-нибудь компонент для маппинга пропертей из одного объекта в другой. К примеру из DAL entity в BL entity. От компонента требуется:
Посмотри на
BLToolkit. Форум:
http://rsdn.ru/Forum/?group=prj.rfd... << RSDN@Home 1.2.0 alpha 4 rev. 1090 >>
Здравствуйте, sLMoloch, Вы писали:
LM>Народ,
LM>Подскажите плиз какой-нибудь компонент для маппинга пропертей из одного объекта в другой. К примеру из DAL entity в BL entity. От компонента требуется:
LM>1) Поддержка двухстороннего маппинга. То бишь описываем где-то map, и по ней данные могут преливаться как из первого объекта во второй так и обратно.
LM>2) Поддержка форматтеров — копирование может происходить из проперти одного типа в проперти совершенно другого типа.
LM>3) Желательно чтобы мапа проверялась на этапе компиляции ( + чтобы тулы автомати4еского рефактринга с ней без проблем работали).
LM>Заранее благодарен.
1 и 2 умеет делать BLToolkit.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Все фигня кроме п4ел... П4елы впринципе тоже фигня, но их много.
Здравствуйте, rameel, Вы писали:
R>Здравствуйте, sLMoloch, Вы писали:
LM>>Народ,
LM>>Подскажите плиз какой-нибудь компонент для маппинга пропертей из одного объекта в другой. К примеру из DAL entity в BL entity. От компонента требуется:
R>Посмотри на BLToolkit. Форум: http://rsdn.ru/Forum/?group=prj.rfd
К сожалению bltoolkit не поддерживает обратный маппинг без объявления мапы для обратного преобразования (Пример перегона проперти в проперти по имени без указания маппига не берем, так как это частный и вырожденный случай). К примеру:
В следующем нужно объявить маппинг SourceObject
-> Object1:
[Test]
public void ObjectToObjectOO()
{
SourceObject so = new SourceObject();
Object1 o = new Object1();
Map.ObjectToObject(so, o);
Assert.AreEqual(10, o.Field1);
Assert.AreEqual(20, o.Field2);
Assert.AreEqual(30, o.Field3);
}
а в этом придется объявить Object1
-> SourceObject:
[Test]
public void ObjectToObjectOOReverse()
{
Object1 o = new Object1();
SourceObject so = new SourceObject();
Map.ObjectToObject(o, so);
Assert.AreEqual(10, so.Field1);
Assert.AreEqual(20, so.Field2);
Assert.AreEqual(30, so.Field3);
}
А хочется чтобы при обоих преобразованиях была мапа SourceObject
<-> Object1.
Все фигня кроме п4ел... П4елы впринципе тоже фигня, но их много.