我有一个客户端,它引用了两个程序集:WCF服务和包含dataContracts的DLL。
同时,客户端使用WCF服务的WSDL。问题是服务引用不代理DataContracts(只代理服务方法)。相反,它将DataContracts放入"Properties/DataSources/"文件夹中。每个都有一个扩展"datasource"当打开时,我会得到一个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>
提前感谢您的回复。
好吧,我现在明白了,这似乎是WCF的一个很酷的功能:它不代理数据合约,而是重用(映射到)包含数据合约的dll。
更新:我在一个更大的解决方案上尝试过,它很有魅力,我只有一个如果调试而不是大量(命名空间):
#if DEBUG
static Service client = new Service();
#else
static ServiceClient client = new ServiceClient();
#endif