Visual Studio的「添加服务引用」是否支持仅导入数据契约?
在Visual Studio中仅导入WSDL的数据契约类(无需服务契约)
方法1:手动修改服务引用配置文件
你通过Visual Studio添加服务引用后,可通过修改自动生成的配置文件来过滤掉服务契约,只保留数据契约,步骤如下:
- 打开解决方案资源管理器,点击顶部「显示所有文件」按钮,找到
Service References文件夹下的Reference.svcmap文件 - 打开该文件,找到
<ClientOptions>节点,添加generateContractsOnly="true"属性,同时把<GenerateWebClient>的Enabled设为false,关键配置示例:<ClientOptions generateContractsOnly="true"> <GenerateWebClient Enabled="false" /> </ClientOptions> - 右键点击服务引用,选择「更新服务引用」,重新生成后就只会得到数据契约类,不会有服务契约的接口和客户端类
方法2:用新版VS的连接服务功能(2017及以上版本)
如果你的Visual Studio版本较新,直接通过图形界面就能实现:
- 右键项目 → 「添加」→ 「连接服务」
- 在连接服务管理器里选「WCF Web服务引用提供程序」
- 输入WSDL地址后点击「高级」按钮
- 在高级设置的「生成」区域,勾选「仅生成数据契约」选项,确认后完成引用添加
这两种方法都不需要用到命令行的svcutil.exe,完全在Visual Studio内操作就能达到和/datacontractonly参数一样的效果。
内容的提问来源于stack exchange,提问作者Martin Mulder
相关产品推荐
相关产品推荐

