Bootstrapper.AutoMapper和Profile注册顺序

时间:2013-01-16 20:43:23

标签: c# automapper bootstrapper automapper-2

我正在使用AutoMapper 2.2.0开发ASP.NET MVC 3应用程序。我已经声明了一些AutoMapper配置文件,当我手动初始化它们时,一切正常。

AutoMapper.Mapper.Initialize(x =>
{
    x.AddProfile<ProdutoToProdutoViewModel>();                    
    x.AddProfile<IPagedListProdutoToIPagedListProdutoViewModel>();
    x.AddProfile<ItemToItemViewModel>();
    x.AddProfile<CarrinhoToCarrinhoViewModel>();
});
//This is working

但是当我尝试用Bootstrapper.AutoMapper 2.0.3.0初始化它们时......

Bootstrapper.With.AutoMapper().Start();

...抛出配置异常:

The following property on eGuruShop.Web.ViewModels.ItemViewModel cannot be mapped:
Itens
Add a custom mapping expression, ignore, add a custom resolver, or modify the destination type eGuruShop.Web.ViewModels.ItemViewModel.
Context:
Mapping to property Itens from eGuruShop.Domain.CatalogoProdutos.Item to eGuruShop.Web.ViewModels.ItemViewModel
Mapping to property Itens from System.Collections.Generic.IList`1[[eGuruShop.Domain.CatalogoProdutos.Item, eGuruShop.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] to System.Collections.Generic.IList`1[[eGuruShop.Web.ViewModels.ItemViewModel, eGuruShop.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]
Mapping from type eGuruShop.Domain.CatalogoProdutos.Carrinho to eGuruShop.Web.ViewModels.CarrinhoViewModel
Exception of type 'AutoMapper.AutoMapperConfigurationException' was thrown

CarrinhoToCarrinhoViewModel个人资料取决于ItemToItemViewModel个人资料,当我将初始化顺序更改为

AutoMapper.Mapper.Initialize(x =>
{
    x.AddProfile<ProdutoToProdutoViewModel>();                    
    x.AddProfile<IPagedListProdutoToIPagedListProdutoViewModel>();
    x.AddProfile<CarrinhoToCarrinhoViewModel>();
    x.AddProfile<ItemToItemViewModel>();
});
//Exception

我有比以前更多的例外。

我怀疑Bootstrapper正在以错误的顺序初始化配置文件,但我不知道如何在不放弃Bootstrapper的情况下解决它。对此问题的任何建议或解决方案?

由于

0 个答案:

没有答案