Тестирование пользовательских элементов управления, использующих презентатора, который, в свою очередь, использует службы wcf - PullRequest
0 голосов
/ 10 июля 2010

У меня есть базовые пользовательские элементы управления WinForm (представление), в которых используются презентатор и модель.Презентатор включает в себя звонки в службу wcf.Недавно возникла ошибка, которая очень старается.Всякий раз, когда я перетаскиваю один из этих элементов управления на свою поверхность конструктора, я получаю сообщение об ошибке, что конечная точка с именем "yadda" не может быть найдена.

Такое же поведение возникает, если я пытаюсь запустить тестовый контейнер usercontrol.Однако, если я закомментирую инициализацию, добавлю элемент управления в мою форму, сохраню форму, перейду к элементу управления и раскомментирую инициализацию, создаю и затем запускаю мое приложение, все работает нормально.

Все мои элементы управления находятся в проекте презентации, который имеет ссылку на другой проект, который содержит докладчиков и модели, а также служебную ссылку на мой сервис wcf.

Я надеюсь, что кто-то столкнулся с подобными трудностями и будет иметь некоторые советы.

Спасибо

1 Ответ

1 голос
/ 10 июля 2010

Вы настраиваете конечную точку WCF в своем файле app.config. Когда вы используете конструктор, ваш код выполняется внутри Visual Studio, поэтому WCF просматривает файл конфигурации Visual Studio и не находит вашу конечную точку.

Вы хотите делать звонки WCF во время разработки? Если вы это сделаете, вам нужно настроить WCF программно, чтобы он работал без app.config. Вот пост, который показывает, как это сделать: http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/82457a59-44f9-4efb-a814-0ed5a1ec0074

Если вы не хотите совершать вызовы во время разработки, вы можете проверить DesignMode на вашем пользовательском элементе управления и не создавать прокси в вашем коде инициализации, если оно True. Обратите внимание, что DesignMode не устанавливается до тех пор, пока не запустится ваш конструктор, поэтому вам необходимо выполнить эту работу в обработчике событий Load или переопределенном OnLoad .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...