Ma question pourrait être stupide, mais je suis sûr que je manque une partie très importante du problème. Je dois faire un objet de mappage d'objet (entre les classes de domaine utilisées dans le projet C# et les classes qui sont envoyées aux clients Flash).Quels sont les avantages d'utiliser automapper?
Mon premier choix était Automapper. Mais j'ai eu quelques problèmes avec lui (propriétés imbriquées, constructeur non paramétrable défini). Il s'avère qu'il n'est pas si facile de mapper un type vraiment complexe avec automapper.
Alors ma question est: Pourquoi ne pas mettre en œuvre des méthodes telles que:
ClassA GetClassAByClassB(ClassB pObj)
{
ClassA objA = new ClassA();
objA.Prop1 = pObj.Prop1;
objA.NestedType.Prop2 = pObj.Prop2;
//....Some more.....
return objA;
}
Il a exactement le même niveau de flexibilité comme la cartographie effectuée à l'aide Automapper. Vous devez toujours indiquer quelle propriété de l'objet source est copiée dans quelles propriétés dans l'objet destinations. Vous faites cela en utilisant '=' et non pas l'expression lambda.
Mais si vous changez quelque chose dans vos classes de domaine, vous devez quand même modifier cette partie "mapping". Alors quelle est la principale chose qui devrait me convaincre d'utiliser Automapper (comme je l'ai dit au début, je suis sûr que je manque quelque chose d'important).
Qu'en est-il des propriétés qui n'ont pas le même nom? Et les propriétés imbriquées? Je pense que je devrais changer les conventions, mais parfois la propriété d'un côté est «PositionX» et de l'autre côté «X». (Juste un exemple - les propriétés anmes peuvent être assez imprévisibles). Donc, n'est-ce pas comme si je ne devais pas utiliser Automapper dans mon cas? – Katalonis
@Katalonis - Ensuite, vous configurez le mappeur de manière sécurisée en utilisant lambdas. Ajout d'un exemple de code et d'un lien. –