Automapper 3.0 を追加するまで問題なく動作する WPF 4.5 Prism プロジェクトがあります。Entity Framework オブジェクトから DTO に変換するために DAL に Automapper を追加すると、シェルの作成直後に、アプリケーションが実行時に失敗します。Automapper が完全にデプロイされていない場合があることをどこかで読んだので、Automapper と Automapper.Net4 への参照を Shell プロジェクトにも追加して、すべてがデプロイされていることを確認しました。
これは私が得るエラーメッセージです:
Could not load file or assembly 'System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes' or one of its dependencies. The system cannot find the file specified.
例外を引き起こす追加したコードは次のとおりです。
namespace DAL
{
[PartCreationPolicy(CreationPolicy.NonShared)]
[Export(typeof(ICampaignActionDataAccess))]
public class CampaignActionDataAccess : ICampaignActionDataAccess
{
public CampaignActionDataAccess()
{
//if (Mapper.FindTypeMapFor<CampaignAction, CampaignActionDTO>() == null)
// Mapper.CreateMap<CampaignAction, CampaignActionDTO>();
//if (Mapper.FindTypeMapFor<CampaignActionGroup, CampaignActionGroupDTO>() == null)
// Mapper.CreateMap<CampaignActionGroup, CampaignActionGroupDTO>();
//if (Mapper.FindTypeMapFor<CampaignActionDescriptor, CampaignActionDescriptorDTO>() == null)
// Mapper.CreateMap<CampaignActionDescriptor, CampaignActionDescriptorDTO>();
}
public IEnumerable<CampaignActionDTO> GetAllActiveCampaignActions()
{
//using (var db = new CampaignActionEntities())
//{
// var actions = (from ca in db.CampaignActions.Include(d => d.CampaignActionDescriptors)
// where ca.IsValid == true
// select ca).ToList();
// return Mapper.Map<IEnumerable<CampaignActionDTO>>(actions);
//}
throw new NotImplementedException();
}
}
}