Existe-t-il un moyen de savoir si automapper a déjà été initialisé? Par exemple:
AutoMapper.Mapper.IsInitialized(); // would return false
AutoMapper.Mapper.Initialize( /*options here*/ );
AutoMapper.Mapper.IsInitialized(); // would return true
Merci!
Essayez d'utiliser:
AutoMapper.Mapper.Configuration.AssertConfigurationIsValid();
Il jette System.InvalidOperationException...Mapper not initialized. Call Initialize with appropriate configuration.
.
Vous pouvez appeler Mapper.Reset();
avant d’initialiser votre mappeur. Je le fais lors de l'initialisation de mes classes de tests unitaires:
[ClassInitialize]
public static void ClassInitializer(TestContext context)
{
Mapper.Reset();
AutoMapperDataConfig.Configure();
}
Fondamentalement, vous essayez de configurer le mappeur à plusieurs endroits de votre code, si je comprends bien, vous essayez de résoudre le problème en centralisant la configuration.
Ce problème pourrait également être résolu en utilisant l'API d'instance, où plusieurs configurations (une par instance) sont possibles (pour les architectures plug-in ou plus séparées) http://docs.automapper.org/en/stable/Static -and-Instance-API.html
Vous pouvez également envelopper votre initialisation dans un essai/capture. Cela attrape et écrase toute erreur.
private void InitializeMapper()
{
try
{
Mapper.Initialize(cfg =>
{
cfg.AddProfile<MyProfile>();
});
}
catch
{
}
}