Создать прокси-классы, не используемые WebMethod - PullRequest
0 голосов
/ 20 января 2010

У меня есть своего рода противоположность этого вопроса: wsdl: создать прокси для WebMethods, но не для других зависимых классов

Как можно автоматически генерировать другие классы (служебные классы), которые полезны на стороне клиента, но не являются ни DataContracts, ни ServiceContracts? Другими словами, желая извлечь определенные классы вместо того, чтобы включать целые DLL.

Редактировать: Да, произвольные классы. Я думаю, что в итоге мы извлечем их в DLL, отличную от тех, частью которых они являются. Просто интересно, есть ли способ использовать отражение или инструмент для копирования только определенных классов из исходной DLL в целевую DLL. «Прокси», вероятно, неправильное слово, потому что методы не будут вызывать WCF. Вместо этого они будут обычными классами, за исключением того, что они были скопированы из исходной DLL. (Причина в том, что вы не хотите делиться всеми (декомпилируемыми) DLL.)

Ответы [ 2 ]

1 голос
/ 22 января 2010

Если исходная dll является чем-то, что вы контролируете, то копирование классов действительно приведет к проблемам в будущем. Лучшим подходом было бы извлечь общие классы в dll «Shared», «Interop» или «Common», на которые могут ссылаться проекты клиента и сервера.

Это также помогает отделить данные от логики, поскольку проект shared / interop / common не должен ссылаться на что-либо еще и является очень простым контейнером данных.

0 голосов
/ 22 января 2010

Вы не можете указать реализацию метода через WSDL.Чтобы выполнить то, что вы пытаетесь сделать, вам нужно создать сценарий сборки / marcro, который создает и компилирует клиентскую библиотеку, в которой есть прокси и ваши методы util.

HTH

...