Mik*_*las 6 wcf wsdl web-services optional-parameters
处理向现有操作添加新(可选)参数而不需要客户端更新其WSDL的最佳方法是什么?我不想更新命名空间来描述新版本的服务合同,因为这应该与旧客户端向后兼容.
我应该使用新参数添加新操作作为重载吗?或者我应该只将参数添加到现有操作?
这是我的操作:
[OperationContract]
MyResponse GetData();
Run Code Online (Sandbox Code Playgroud)
应该是:
[OperationContract]
MyResponse GetData();
[OperationContract]
MyResponse GetData(string filter);
Run Code Online (Sandbox Code Playgroud)
或者更简单地说,只需将其更改为:
[OperationContract]
MyResponse GetData(string filter);
Run Code Online (Sandbox Code Playgroud)
后一个选项似乎是最好的,根据我的参考书," 对客户端的影响是无.新服务在服务时初始化为默认值. "WCF是否将其初始化为所谓的默认值?如果是这样,默认值是多少?
Age*_*191 13
需要考虑的一件事是,您不能拥有两个具有相同名称的OperationContracts.它序列化的方式会引发错误.
最好的方法是使用选项3(仅添加新参数)并在方法逻辑帐户中使用它,对于那些尚未更新的客户端,它是空值.如果这是客户端需要更新的重大更改,请确保不会因为异常而导致整个应用程序死亡.
| 归档时间: |
|
| 查看次数: |
9530 次 |
| 最近记录: |