我使用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一樣。 –