У меня есть классы viewmodel, а также классы обслуживания wcf (отдельный проект). Мне нужно преобразовать классы viewmodel в классы wcf, а также наоборот. В настоящее время я использую следующий метод:
public static class ExtensionMethods
{
public static object To<T>(this object source)
{
// create the map
Mapper.CreateMap(source.GetType(), typeof (T));
// if the source is a list
if(source is IEnumerable)
{
return Mapper.Map(source, source.GetType(), typeof (List<T>));
}
// return the mapping
return (T) Mapper.Map(source, source.GetType(), typeof (T));
}
}
// converting the wcf class to viewmodel
var orders = (List<OrderStatusViewModel>) _orderStatusServiceClient.GetRecentOrders().To<OrderStatusViewModel>();
// converting the viewmodel to the wcf class
var order = (Order) orderStatusViewModel.To<Order>();
Это лучший способ сделать это? Имейте в виду, я должен выполнить это в обоих направлениях, т.е. viewmodel => классы wcf и классы wcf => viewmodel.