WCF服务更新后方法参数变为Request类型,如何恢复原有方法形式?
WCF服务更新后恢复原方法参数形式的方案
更新WCF服务后,方法从多参数变成单个methodRequest封装参数,是因为服务引用生成时启用了「消息契约」模式,按以下步骤可恢复原形式:
重新配置服务引用生成规则
- 在VS2022里右键项目,选择「添加」→「服务引用」,点击窗口左下角的「高级」按钮
- 在弹出的「服务引用设置」窗口中,找到「生成消息契约」选项,取消勾选它
- 确认设置后,重新更新服务引用,生成的方法就会回到原来的多参数形式
应急手动修改(不推荐,更新服务会覆盖)
如果暂时无法重新生成服务引用,可找到服务引用目录下的Reference.cs文件,手动重构出多参数方法,内部调用自动生成的Request对象逻辑,但后续更新服务时手动修改的代码会被覆盖,所以优先用第一种方法
原因说明
勾选「生成消息契约」后,WCF会自动将方法的多个参数封装成统一的Request消息对象,取消该选项就会生成与服务端定义一致的多参数方法。
内容的提问来源于stack exchange,提问作者Elgate
相关产品推荐
相关产品推荐

