Спасибо за ответы, но все же хотелось бы более универсального маппера.
1С подобную проблему решила еще лет 7 назад и достаточно успешно ...
Конечно же не совсем корректное сравнение, но тем не менее ...
Просто лично я хотел бы, чтобы можно было делать вот так:
BisnessObject bo = SomeManager.GetObjectByID(id);
Type t = bo.MyBestFriend.GetType();
и переменная бы t содержала конкретный тип данных ...