この単純なインジェクター コードはどのように unity に変換されますか。これはこれを参考に
public static Container RegisterAutoMapper(this Container container)
{
var profiles = typeof(AutoMapperRegistry).Assembly.GetTypes()
.Where(t => typeof(Profile).IsAssignableFrom(t))
.Select(t => (Profile)Activator.CreateInstance(t));
var config = new MapperConfiguration(cfg =>
{
foreach (var profile in profiles)
{
cfg.AddProfile(profile);
}
});
container.Register<MapperConfiguration>(() => config);
container.Register<IMapper>(() => container.GetInstance<MapperConfiguration>()
.CreateMapper());
return container;
}
プロファイルをスキャンしてループする最初の部分はかなり簡単だと思いますが、間違っている可能性があります。に近いもの
public static Container RegisterAutoMapper(this Container container)
{
var profiles = AppDomain.CurrentDomain
.GetAssemblies()
.SelectMany(a => a.GetTypes());
var config = new MapperConfiguration(cfg =>
{
foreach (var item in profiles)
{
if (item.FullName != "AutoMapper.SelfProfiler`2")
cfg.AddProfile(Activator.CreateInstance(item) as Profile);
}
});
//container.Resolve...;
//container.Resolve...;
return container;
}
Unity を使用してこれを行うにはどうすればよいでしょうか。