AutoMapper la Migration de la statique de l'API
https://github.com/AutoMapper/AutoMapper/wiki/Migrating-from-static-API
ce changement me brise le système.
Avant la mise à jour, j'utilise:
===> Démarrage.cs
public class Startup
{
public Startup(IHostingEnvironment env)
{
...
MyAutoMapperConfiguration.Configure();
}
}
===> MyAutoMapperConfiguration.cs
public class MyAutoMapperConfiguration
{
public static void Configure()
{
Mapper.Initialize(a =>
{
a.AddProfile<AbcMappingProfile>();
a.AddProfile<XyzMappingProfile>();
a.AddProfile<QweMappingProfile>();
});
}
}
===> AbcMappingProfile.cs
public class AbcMappingProfile : Profile
{
protected override void Configure()
{
Mapper.CreateMap<AbcEditViewModel, Abc>();
Mapper.CreateMap<Abc, AbcEditViewModel>();
...
}
}
ERREUR:
'Mapper.CreateMap () "est obsolète:" La statique de l'API sera supprimé dans la version 5.0. Utiliser un MapperConfiguration instance et de les stocker de manière statique en tant que de besoin. Utilisation CreateMapper pour créer un mappeur instanace.'
Je peux utiliser Mappeur.Carte. Maintenant, Comment puis-je l'utiliser
Vous devez vous connecter pour publier un commentaire.
Au lieu de:
La nouvelle syntaxe est:
Alors:
(Source des exemples)
Au lieu de Automapper Profil d'utilisation IMapperConfigurationExpression extension:
Configuration de mappage:
Intégration (Démarrage.cs etc.):
services
dans ce contexte et comment git le mapper dans mon contrôleurs MVC?IServiceCollection
qui vous obtenez injecté dans votrepublic void ConfigureServices(IServiceCollection services)
méthode par Asp.net Core FW.L'injection de dépendance ajouté un niveau de complexité à mon projet de l'héritage que je n'avais juste pas envie de traiter avec. Comme la même bibliothèque est appelée avec de nombreuses technologies, Webforms, MVC, d'Azur, Service, etc...
Également l'injection de dépendance serait de m'a forcé à réécrire plusieurs méthodes ou de passer un IMapper autour de.
Donc, je viens de l'ingénierie inverse de ce qu'il faisait dans la 8.0, et a écrit un wrapper pour elle.
L'initialiser comme ce fut le cas dans les versions précédentes
Et viens de l'appeler dans votre démarrage, (à l'échelle Mondiale.asax etc..)
Puis tout ce que vous avez à faire est d'ajouter MapperWrapper avant tous votre les appels statiques. Et tout fonctionne comme avant.
HI
En outre, vous pouvez appliquer la classe alias à l'aide de déclaration
et pas besoin de modifier le code, il suffit de modifier l'instruction d'utilisation.
Définir une aide de la directive et à l'aide d'un alias pour une classe:
https://docs.microsoft.com/zh-tw/dotnet/csharp/language-reference/keywords/using-directive#example-2
--
.Votre classe de mise en œuvre pour assurer la compatibilité.
HTML:
.Le changement "à l'aide de AutoMapper" à la section "utilisation du Mappeur = AutoMappers.Mapper".
HTML:
--