https://lostechies.com/jimmybogard/2016/07/20/integrating-automapper-with-asp-net-core-diで説明されている手法を使用して、ASP.NET Core MVCアプリケーションでAutoMapperを実装しようとしています。ここでASP.NETコアMVCでのAutoMapperの実装
public IServiceProvider ConfigureServices(IServiceCollection services)
{
…
services.AddMvc();
services.AddAutoMapper();
…
// Autofac configuration
return ConfigureAutofacContainer(services);
}
あるmy AutoMapper.Profile implementation
public class AutoMapperProfile_NetCore_DtoFromDao : Profile
{
#region ctor
public AutoMapperProfile_NetCore_DtoFromDao()
{
CreateMaps();
}
#endregion
#region Methods
protected void CreateMaps()
{
if (Mapper.Configuration.FindTypeMapFor(typeof(AddressType),
typeof(AddressTypeDto)) == null)
CreateMap<AddressType, AddressTypeDto>();
Mapper.Configuration.AssertConfigurationIsValid();
}
}
AutoMapperProfile_NetCore_DtoFromDao.CreateMaps(ある))(ServiceCollectionExtensions.AddAutoMapperClassesによって呼び出されている:
public static class ServiceCollectionExtensions
{
…
private static void AddAutoMapperClasses(IServiceCollection services,
Action<IMapperConfigurationExpression> additionalInitAction,
IEnumerable<Assembly> assembliesToScan)
{
…
Mapper.Initialize(cfg =>
{
additionalInitAction(cfg);
foreach (var profile in profiles)
{
cfg.AddProfile(profile);
}
});
…
}
}
私は取得しています以下を除くイオン:
タイプの例外「System.InvalidOperationExceptionが」を AutoMapper.dllで発生したが、ユーザーコードで
Qを扱っていなかった - これはMapper.Configuration.FindTypeMapForを呼び出すプロファイルによるものですMapper.Initialization()中に()?
Q - 初期化中に追加する前に既存のマッピング設定をテストすることはできますか?
のSystem.InvalidOperationExceptionは
HRESULT = -2146233079メッセージ=マッパーが初期化されていないユーザコードによって未処理でした。適切な設定で を初期化してください。マッパー のインスタンスをコンテナなどを使用して使用する場合は、静的なMapper.Mapメソッドへの呼び出しがないことを確認してください。 ProjectToメソッドまたはUseAsDataSource拡張メソッドを使用している場合は、渡すことを確認してください 適切なIConfigurationProviderインスタンス。ソース= AutoMapper
のStackTrace: CでDna.NetCore.Core.BLL.Mappers.AutoMapperProfile_NetCore_DtoFromDao.CreateMaps() でAutoMapper.Mapper.get_Configuration() で :\ SRC \ AutoMapper.Extensions.Microsoft.DependencyInjection \ SRC \ Dna.NetCore.Core.BLL \マッパー\ AutoMapperProfile_NetCore_DtoFromDao.cs:\ SRC \ AutoMapper.Extensions.Microsoft:ライン 22 Dna.NetCore.Core.BLL.Mappers.AutoMapperProfile_NetCore_DtoFromDao..ctorで() Cです。 DependencyInjection \ src \ Dna.NetCore.Core.BLL \ Mappers \ AutoMapperProfile_NetCore_DtoFromDao.cs:line 13内部エラー:
クラスライブラリベースのサービスでAutoMapperを使用していてxUnitテストでテストしている場合は、サービス.AddAutoMapper "注射? xUnitテストフィクスチャの開始時に?これは、.NET CoreクラスライブラリxUnitプロジェクトであり、.NET Frameworkの使用方法の多くの例があります。ありがとう。 – dodegaard
ここに私がしたことがあります:https://lostechies.com/jimmybogard/2016/10/24/vertical-slice-test-fixtures-for-mediatr-and-asp-net-core/基本的には固定器具の一部になりました。 「スタートアップ」構成を呼び出すためのセットアップ。 –