2009-11-24 5 views
1

В моем клиенте, я пытаюсь объявить тип объекта из службы ....Получение типа класса от службы WCF

MyService.MyClass myClass = new MyService.MyClass(); 
.... 

MyClass не доступен.

Сборка MyClass находится в пределах, на которую ссылается MyService. Что мне не хватает?

+0

Не могли бы вы предоставить более подробную информацию? Как вы настраиваете интерфейс? Как вы настраиваете сервис? – McKay

ответ

1

Как правило,, чтобы сохранить границу обслуживания, вы работаете с mex-сгенерированными прокси-классами на клиенте; это структура только, поэтому у вас нет методов и т. д. (только свойства), и могут даже иметь разные имена (и почти наверняка другое пространство имен).

Однако; если это .NET до .NET, вы можете получить WCF (через svcutil или IDE) для повторного использования типов в существующих сборках. Через IDE он делает это автоматически (по умолчанию - вы можете отключить его), если у вас есть ссылка на DLL, содержащую соответствующие типы. В командной строке вы используете /r IIRC.

1

С точки зрения клиента, сервис - это просто интерфейс, клиент не имеет доступа к кишкам сервера. Типы, которые могут вам понадобиться, должны быть выставлены как часть контракта извне (например, в отдельной сборке).

+0

Ну, это в основном походило бы на использование DTO, но вместо того, чтобы использовать отдельный класс и сопоставлять его внутри службы, я просто использую класс из службы. – suedeuno

0

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

Смежные вопросы