SourceA SourceB
ClassA1 -> ClassB1
КлассA2 -> КлассB2
КлассA3 -> КлассB3
и т. д.
У меня есть статический класс с перегруженными методами, сопоставляющими данные между классами:
Код: Выделить всё
public static class Mapper{
public static ClassB1 Map(ClassA1){
return new ClassB1();
}
public static ClassB2 Map(ClassA2){
return new ClassB2();
}
// etc.
}
Код: Выделить всё
public void ProcessEntity(string EntityNameInSourceA, string EntityNameInSourceB){
List dataA = Source1.GetData(EntityNameInSourceA);
List dataB = Mapper.Map(dataA);
Source2.SaveData(dataB);
}
Код: Выделить всё
public void Main(){
ProcessEntity("TableA1", "TableB1");
ProcessEntity("TableA2", "TableB2");
ProcessEntity("TableA3", "TableB3");
}
Код: Выделить всё
ProcessEntity("TableA4", "TableB4");
Ну , я могу
- Использовать библиотеку AutoMapper
- Использовать оператор if для предварительного определения типов (не проверял, работает ли это) кстати)
Код: Выделить всё
if (typeof(TA) == typeof(ClassA1)){
ClassB1 dataB = Mapper.Map(dataA)
}
- Использовать шаблон адаптера, который в данном случае мне кажется тяжеловесным
Подробнее здесь: https://stackoverflow.com/questions/790 ... ta-sources
Мобильная версия