Ссылки клиента WCF на DataContracts (автоматически генерируемые источники данных)
У меня есть клиент, который ссылается на две сборки: служба WCF и DLL, содержащие dataContracts.
В то же время клиент использует WSDL службы WCF. Проблема в том, что ссылка на службу не использует прокси DataContracts (только методы службы). Вместо этого он помещает DataContracts в папку "Properties/DataSources/". Каждый из них имеет расширение "источник данных". При открытии я получаю XML, который выглядит следующим образом:
<?XML version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="DataContractClass" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>MySolution.ContractClasses, MySolution, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>
Заранее спасибо за ваши ответы.
1 ответ
Хорошо, теперь я понимаю, что это, кажется, крутая особенность WCF: вместо того, чтобы передавать контракты данных, он повторно использует (сопоставляет) библиотеку DLL, содержащую DataContracts.
ОБНОВЛЕНИЕ: я попробовал это на большем решении, и это работает как очарование, у меня есть только одно, если DEBUG вместо множества (пространства имен):
#if DEBUG
static Service client = new Service();
#else
static ServiceClient client = new ServiceClient();
#endif