0

この単純なインジェクター コードはどのように 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 を使用してこれを行うにはどうすればよいでしょうか。

4

0 に答える 0