2010-07-10 4 views
0

J'ai des commandes utilisateur WinForm de base (vue) dont l'intilisation inclut un présentateur et un modèle. Le présentateur inclut les appels à un service wcf. Récemment, une erreur s'est produite qui est très éprouvante. Chaque fois que je glisse et dépose l'un de ces contrôles sur ma surface de conception, une erreur me fait croire que l'extrémité avec le nom "yadda" est introuvable.Test des contrôles utilisateur qui utilisent un présentateur qui utilise à son tour les services wcf

Ce même comportement se produit si j'essaie d'exécuter le conteneur de test usercontrol. Si toutefois, je commente l'initialisation, ajoutez le contrôle à mon formulaire, enregistrez le formulaire, allez au contrôle et décommentez l'initialisation, construisez, puis exécutez mon application tout fonctionne bien. Tous mes contrôles sont dans un projet de présentation qui a une référence à un autre projet qui contient les présentateurs et les modèles ainsi qu'une référence servic à mon service wcf.

J'espère que quelqu'un qui a rencontré des difficultés similaires et aura quelques conseils.

Merci

Répondre

1

Vous configurez le point de terminaison WCF dans votre fichier app.config. Lorsque vous utilisez le concepteur, votre code s'exécute dans Visual Studio, donc WCF recherche dans le fichier de configuration de Visual Studio et ne trouve pas votre point de terminaison.

Voulez-vous effectuer des appels WCF au moment du design? Si vous le faites, vous devez configurer le WCF par programme afin qu'il fonctionne sans app.config. Voici un message qui montre comment faire cela: http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/82457a59-44f9-4efb-a814-0ed5a1ec0074

Si vous ne voulez pas faire les appels au moment du design, vous pouvez vérifier le DesignMode sur votre contrôle utilisateur, et ne pas créer le proxy dans votre code d'initialisation si c'est vrai. Notez que DesignMode n'est pas défini qu'après l'exécution de votre constructeur, vous devrez donc effectuer ce travail dans un gestionnaire d'événements Load ou un OnLoad remplacé.

Questions connexes