Я использую ASP.NET MVC 3
с Razor
и Autofac
для внедрения зависимостей.
Я думаю о создании универсального преобразователя.В настоящее время я использую AutoMapper
для сопоставления моего домена и модели представления.Это может быть любая инфраструктура отображения, но я использую AutoMapper.
Вот мой IMapper
интерфейс:
public interface IMapper
{
object Map(object source, Type sourceType, Type destinationType);
}
У меня тогда есть интерфейс IBankMapper, который реализует этот интерфейс IMapper.Причина, по которой я это сделал, заключается в том, что у меня может быть много разных картографов.Используя внедрение зависимостей, я могу знать, какой экземпляр я могу внедрить.Поэтому для IBankMapper я буду внедрять BankMapper, ICategoryMapper я буду вводить CategoryMapper.
IBankMapper
интерфейс:
public interface IBankMapper : IMapper
{
}
BankMapper
класс:
public class BankMapper : IBankMapper
{
static BankMapper()
{
Mapper.CreateMap<Bank, EditBankViewModel>();
Mapper.CreateMap<EditBankViewModel, Bank>();
}
public object Map(object source, Type sourceType, Type destinationType)
{
return Mapper.Map(source, sourceType, destinationType);
}
}
какпрограмма растет, как и классы картографа.Есть ли способ, которым я могу создать универсальный картограф, который можно использовать во всем приложении?Это возможно?