Клиент службы WF4 не создает прокси-класс

У меня есть служба Windows Workflow Foundation 4 и простой клиент.

Когда я добавляю ссылку на службу в клиентскую визуальную студию, не создается прокси-класс, только интерфейс и типы.

У кого-нибудь есть решение?

Что делать, чтобы служба wf4 работала правильно? Какое пространство имен, классы и контракты мне нужно использовать?

Спасибо!


person Murilo Lima    schedule 19.08.2010    source источник


Ответы (1)


Когда клиентский проект относится к типу проекта рабочего процесса, настройка ссылки на службу работает немного иначе. Вместо создания стандартных прокси-классов он генерирует действия Send и ReceiveReply для использования в рабочем процессе. Очень хорошо, если вы строите рабочий процесс, но не тогда, когда вы хотите вызвать сервис, используя обычный код.

Вы можете использовать SvcUtil вручную для создания прокси-классов или использовать ChannelFactory со сгенерированным интерфейсом для создания необходимого прокси-объекта. Последний вариант - обычно более простой.

person Maurice    schedule 20.08.2010
comment
Я использую консольное приложение в качестве клиента. Я думаю, проблема в сгенерированном сервисе wcf. Я пытаюсь создать сервис рабочего процесса, такой как ваш экранный ролик номер 6, но обрабатываю исключение, подобное вашему сообщению msmvps.com/blogs/theproblemsolver/archive/2010/03/24/. - person Murilo Lima; 20.08.2010
comment
В этом случае он должен просто сгенерировать прокси-класс, с которым вы будете работать, который включает в себя как контракты ошибок, так и обычные сообщения. Исходный код сообщения в блоге прикреплен к сообщению, поэтому вы можете сравнить свои проекты с моими. - person Maurice; 20.08.2010
comment
Я обнаружил проблему, в .csproject консольного приложения есть раздел ProjectTypeGuids, который включает руководство приложения рабочего процесса, поэтому ссылка на сервис работает, как вы сказали ранее. - person Murilo Lima; 20.08.2010
comment
Верно, это означает, что диалоговое окно Add Service Reverence считает его проектом WF и выполняет функцию WF. Я бы предпочел, чтобы он по-прежнему генерировал исходный прокси, но это то, что мы получили. - person Maurice; 20.08.2010