有没有办法知道automapper是否已经初始化? 例如:
AutoMapper.Mapper.IsInitialized(); // would return false
AutoMapper.Mapper.Initialize( /*options here*/ );
AutoMapper.Mapper.IsInitialized(); // would return true
谢谢!
答案 0 :(得分:9)
您可以在初始化映射器之前调用Mapper.Reset();
。我在初始化单元测试类时这样做:
[ClassInitialize]
public static void ClassInitializer(TestContext context)
{
Mapper.Reset();
AutoMapperDataConfig.Configure();
}
答案 1 :(得分:6)
尝试使用:
AutoMapper.Mapper.Configuration.AssertConfigurationIsValid();
抛出System.InvalidOperationException...Mapper not initialized. Call Initialize with appropriate configuration.
。
答案 2 :(得分:0)
基本上,您正在尝试在代码中的多个位置配置Mapper,据我所知,您正在尝试通过集中配置来解决此问题。
此问题也可以通过使用Instance API来解决,其中可以进行多个(每个实例一个)配置(对于插件或更多分离的体系结构) http://docs.automapper.org/en/stable/Static-and-Instance-API.html
答案 3 :(得分:0)
您还可以将“初始化”包装在“尝试/捕获”中。这样可以捕获并消除任何错误。
private void InitializeMapper()
{
try
{
Mapper.Initialize(cfg =>
{
cfg.AddProfile<MyProfile>();
});
}
catch
{
}
}