我使用ASP.NET MVC 3
与Razor
和Autofac
为依赖注入。通用映射器,而不是有大量的个人映射器
我正在考虑创建一个通用映射器。目前我正在使用AutoMapper
作为我的域和视图模型之间的映射。它可以是任何映射框架,但我使用的是AutoMapper。
这里是我的IMapper
接口:
public interface IMapper
{
object Map(object source, Type sourceType, Type destinationType);
}
然后我有一个实现这个IMapper接口的IBankMapper接口。我之所以这样做是因为我可以有许多不同的映射器。使用依赖注入我可以知道我可以注入哪个实例。所以对于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);
}
}
随着程序的增长因此将映射器类。有没有一种方法可以创建一个通用映射器,一个可以在整个应用程序中使用的映射器?这可能吗?
我不明白你的问题。 AutoMapper *是一个通用的映射器... –
我想教我的映射器类。我有BankMapper,AccountTypeMapper,ProductMapper,ApplicationMapper等。我想尝试创建1个接受源类和目的类的映射类(如果可能的话)。像TSource和TDestination一样。 –