У нас есть централизованно модель управляемого объекта для типов в схеме в C#. Мы хотим, все по всему предприятию используют ту объектную модель вместо того, чтобы использовать ту, генерировал каждый раз от wsdl/svcutil во время клиента веб-сервиса или реализации услуги.
существует ли параметр (какой-либо другой путь) к wsdl/svcutil для не генерации классов для типов схемы во время theie выполнения?
Это достаточно просто сделать (как показали другие), но в зависимости от ваших потребностей вы также должны учитывать, что для данных с несколькими частями информации, которые вы хотите извлечь по любому критерию, база данных может быть лучшим инструментом. Встроенный модуль sqlite3
предоставляет базу данных с низкими накладными расходами, которая может, в зависимости от выполняемых действий, обслуживать вас лучше, чем вложенный документ.
Возможная причина: Движок регекса должен сильно отследить, если он не жадный.
-121--1339680- Я считаю, что вы ищете: svcutil.exe/r your-dtos.dll
/reference: - Типы ссылок в указанном сборка. При создании клиентов используйте эта опция используется для указания сборок, которые может содержать типы, представляющие импортируемые метаданные. (Краткое описание: / r)
По моему мнению, тесная связь прокси-сервера WCF, канала конечной точки, операций обслуживания и полезных нагрузок dto с одним и тем же сгенерированным прокси-сервером клиента является серьезным недостатком конструкции.
Это то, что побудило меня решить в моих открытых веб-службах рамку , где я разделяю конечную точку и полезную нагрузку, что позволяет:
В моей компании мы разработали сотни веб-сервисов, вызываемых различными клиентами, например Ajax, Flash/ActionScript, C++, Silverlight, ASP.NET, и возможность звонить на одну и ту же веб-службу через различные конечные точки сэкономила нам бесчисленное количество часов.
Я не знаю какой-либо конкретной настройки или переключателя командной строки, чтобы обеспечить это - что вы можете сделать, но это в основном вопрос обучения и обеспечения соблюдения проверка, заключается в том, чтобы поделиться библиотекой классов (сборкой в DLL) с разработчиками и убедиться, что все ссылаются на эту общую библиотеку классов и оставляют настройки по умолчанию в диалоговом окне «Добавить ссылку на службу» (на странице «Дополнительно» ):
Здесь вы определяете, что WCF будет повторно использовать любые типы, которые он может найти в любой из ссылочных сборок, поэтому, если ваши разработчики добавят регулярную ссылку на библиотеку общих контрактов данных, тогда WCF будет использовать эти типы вместо повторного использования. -создавая их снова и снова.
Но опять же - это всего лишь подход типа «управление примером и проверка» - я не знаю какого-либо технического способа обеспечить это.
Если вы удалите конечную точку mex из файла конфигурации службы, клиентское приложение не сможет обнаружить и сгенерировать прокси-объекты.
Один из способов справиться с этой ситуацией, если я правильно понял ваш вопрос, - это сделать следующее:
В этом подходе вы вообще не используете wsdl.exe / svcutil.exe, так как вы по существу обходите wsdl. Вы также не добавляете ссылки на службы, поскольку вы вручную управляете соединениями.
РЕДАКТИРОВАТЬ: Следуя этому подходу, клиент все еще может попытаться сгенерировать прокси-объекты через wsdl.exe / svcutil.exe, но он не получит правильную информацию из wsdl. По сути, они сгенерируют нефункционирующий / неполный прокси.