Ссылки клиента 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
Другие вопросы по тегам