12
votes

Peut-il être utilisé dans une application de console?

est-il possible d'utiliser automapper dans une application de console?

Son Mise en route Page suggère que la classe Bootstrapper soit appelée à partir de l'application Start Up , mais il n'y a pas de détails supplémentaires sur une classe à ajouter et à appeler de principal () .

Comment puis-je utiliser ici dans une simple application de console?


0 commentaires

3 Réponses :


12
votes

Vous pouvez initialiser automapper dans le démarrage de la console, il n'y a pas de limitations; L'application_start est l'endroit de démarrage pour un programme Web dans .NET / IIS, c'est-à-dire le code appelé une seule fois. Toute configuration que vous devez appeler au début d'un projet Web passe dans cette méthode.

Modifier pour commentaire : Si vous ne voulez pas créer vos mappages à la volée, mais préférerais avoir Un lieu d'initialisation de tous vos mappages, il suffit de créer une fonction appelée initializeautomapper et de créer le mapper.configure appelle ici. Ensuite, dans votre MAIN () , appelez simplement la fonction. Il y a beaucoup de façons de gérer la configuration, mais c'est le moyen plus simple de le gérer.

échantillon de code xxx


6 commentaires

Je ne suis pas sûr de la partie de la réponse que vous trouvez déroutant. Application_Start est plus ou moins comparable à la méthode de votre application de console. Vous pouvez l'initialiser là-bas si toutes vos méthodes sont statiques ou dans le constructeur de votre application si vous envisagez d'utiliser des méthodes d'instance.


Je reçois automapper n'existe pas dans les erreurs de contexte actuelles où j'ai mon Createmap et appelle malgré une référence à la Fadiatrice. dll. Si cette cartographie est toute l'initialisation nécessaire, je vais expliquer pourquoi la référence ne fonctionne pas.


@Stuperuser: essayez de poster le code de l'initialisation; Le code que j'ai posté des œuvres (à condition qu'il y ait une méthode Typea à typef et une méthode Dostuff)


@samy qui donne des erreurs similaires, la référence joue des budgers stupides. C'est dans le répertoire de références de l'explorateur de solution, mais l'espace de noms automapper disparaît du navigateur d'objets même après le redémarrage des projets / re-ajouts.


@samy, il semble que Systeme System.Web ait besoin.


@ R0Manarmy La confusion est venue de la question qui ne contient aucun détail sur quoi d'autre devait être configuré, car ma cartographie est effectuée à la volée, je n'ai pas besoin de configurer quoi que ce soit. Mes problèmes ont été causés par une dépendance apparente sur System.Web, qui ajoutée par une référence corrige le problème.



0
votes

Oui, mais il semble avoir une dépendance sur System.Web, qui doit également être incluse.

(voir Référence de disparition mystérieuse pour plus de détails)


4 commentaires

C'est vraiment étrange, vous ne devriez pas avoir ces problèmes depuis que System.Web vit dans le GAC et se trouve par le ... Quoi qu'il en soit, bonne prise :) Pour le disque, j'ai utilisé Nuget pour tester rapidement la solution que j'ai postée, mais je Vous ne pouvez pas trouver une référence difficile à System.Web dans le projet de console.


@samy: Il est probablement lié à Ceci . Il n'y a pas de dépendance directe, mais une dépendance d'une dépendance.


@Stuperuser utilisiez-vous le cadre de profil du client? Si oui, R0Manarmy a peut-être trouvé la raison de son lien


@samy @ r0manarmy C'était ce qui était dans un nouveau projet de console par défaut, ajout de System.Web il a mis à jour le cadre cible du projet à .NET Framework 4 . @ R0Manarmy fissua.



3
votes

Je sais que c'est une ancienne question, mais si vous avez trouvé cela, je souhaite ajouter une mise à jour: automaxer n'autorise plus l'initialisation statique.

Vous pouvez vérifier plus ici

ci-dessous, je fournis un exemple complet de la façon de l'utiliser sur une application de console. J'espère que cela pourrait être utile pour quelqu'un à l'avenir. xxx

N'oubliez pas d'inclure à l'aide de MODAPPER;


0 commentaires