6

我有一个巨大的 WSDL,但我只需要其中的几个方法。

是否可以仅为这些方法生成 WCF 代理?

“完全实现”为我的 DLL 添加了 9 兆字节。

4

2 回答 2

1

您可以手动构建数据协定和仅包含您感兴趣的操作的接口,然后将该接口与ChannelFactory一起使用来创建一个仅针对这些操作的基本客户端,或者...

...您还可以从您不需要的所有操作和元素中剥离 WSDL,并将结果提供给 svcutil.exe 以创建更简单的客户端。一种更安全的方法是将大型 WSDL 提供给 svcutil.exe 并从生成的代码中去除不需要的内容(这样更安全,因为如果您删除了不应该删除的内容,编译器会立即通知您)。

无论哪种方式,我认为您将不得不执行一些手动干预。

于 2012-11-20T20:19:20.900 回答
1

svcutil 有一个/excludeType标志。它可以在元数据导出和类型生成期间使用。

从 svcutil 命令行帮助:

/excludeType: - 从导出或验证中排除的完全限定或程序集限定类型名称。导出服务或一组服务合同的元数据时可以使用此选项,以排除类型被导出。此选项不能与 /dataContractOnly 选项一起使用。(简称:/et)

如何使用 svcutil.exe 导出单个合同的元数据?用它来解决一个类似的问题。

我希望类型过滤对你有用,因为我不知道“开箱即用”的方法来做到这一点。

于 2012-11-20T23:11:02.847 回答