私はしばらくの間、.NetアプリでAutomapperとAutofacを使ってきました。 APIが変更されたと私はトラブルの新しいAPIへの翻訳を持っていますAutomapper(4.2)の最新のビルドでAutofacとAutomapperの新しいAPI - ConfigurationStoreがなくなった
builder.RegisterAssemblyTypes(typeof (OneOfMyMappingProfiles).Assembly)
.Where(t => t.IsSubclassOf(typeof (Profile)))
.As<Profile>();
builder.Register(ctx => new ConfigurationStore(new TypeMapFactory(), MapperRegistry.Mappers))
.AsImplementedInterfaces()
.SingleInstance()
.OnActivating(x =>
{
foreach (var profile in x.Context.Resolve<IEnumerable<Profile>>())
{
x.Instance.AddProfile(profile);
}
});
builder.RegisterType<MappingEngine>()
.As<IMappingEngine>().SingleInstance();
:私はそれらをこのように構成されました。 ConfigurationStoreは存在しなくなりました。ドキュメントによれば、IOCに登録する方法は次のようになります。
var profiles =
from t in typeof (AutoMapperRegistry).Assembly.GetTypes()
where typeof (Profile).IsAssignableFrom(t)
select (Profile)Activator.CreateInstance(t);
var config = new MapperConfiguration(cfg =>
{
foreach (var profile in profiles)
{
cfg.AddProfile(profile);
}
});
For<MapperConfiguration>().Use(config);
For<IMapper>().Use(ctx => ctx.GetInstance<MapperConfiguration>().CreateMapper(ctx.GetInstance));
しかし、StructureMapを使用しています。これの前半は問題ありませんが、 "For <> .Use()"部分の翻訳方法はわかりません。オートファックではどうすればいいですか?
はあなたのプロファイルのいずれかを表示することができますか? IMapperConfigurationをプロファイルコンストラクタに挿入しますか? – BBauer42
ありがとう!私はGitHub上で([Autofacで新しいバージョンのAutoMapperを設定する際のこのスレッド](https://github.com/AutoMapper/AutoMapper/issues/1109)も非常に役に立ちました。 – BBauer42
迅速なフォローアップの質問。どこでどのように構成を有効にすることが有効ですか? – BBauer42