2
AutoMapper 5.1.1をCastleWindsorに登録しようとしていますが、Mapper.Initialize()を正しく呼び出す場所はわかりません。AutoMapper 5.1.1をCastle Windsorに登録する
AutoMapperプロフィール:
namespace AutoMapper_DI.Mappings
{
public class WebMappingProfile : Profile
{
public WebMappingProfile()
{
CreateMap<Person, PersonDTO>();
}
}
}
城ウィンザー登録:
class MainInstaller : IWindsorInstaller
{
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.AddFacility<TypedFactoryFacility>();
container.Register(Component.For<IMapper>().UsingFactoryMethod(x =>
{
return new MapperConfiguration(c =>
{
c.AddProfile<WebMappingProfile>();
}).CreateMapper();
}));
container.Register(Component.For<MainClass>());
}
}
そして、私が使用したとき、私はマッパーを得た_mapperその後、初期化されていません例外:任意のアドバイスのための
class MainClass
{
private readonly IMapper _mapper;
public MainClass(IMapper mapper)
{
_mapper = mapper;
}
public void Start()
{
Person p = new Person
{
Name = "Somebody",
Surname = "Nobody",
Birth = new DateTime(1984, 06, 18)
};
var personDTO = Mapper.Map<Person, PersonDTO>(p);
}
}
感謝。
マッパー設定を別々に作成し、それを "Component.For()。Instance(mapper);で"インスタンス "として登録することを検討しましたか? –
stuartd