Mea*_*een 10 .net wcf wsdl web-services asmx
假设我有一个webservice,它返回所有方法的类,通知客户端进程的状态,例如:
public class WsResult {
string result; // either "error" or "ok"
}
Run Code Online (Sandbox Code Playgroud)
现在我们要向此类添加属性,而不强制所有使用我们服务的客户端更新其软件.这可能吗?
例如:
public class WsResult {
public string result; // either "error" or "ok"
public Guid? someIdentifier;
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找WCF和ASMX的答案.
WCF
有可能的.您只需添加一个新属性即可,只要不需要这个新属性即可.有关更多详细信息,请参阅最佳实践:数据合同版本控制文章的第8点.
如果您需要处理往返方案,您应该阅读有关IExtensibleDataObject接口的信息.当数据从服务器发送到客户端时发生往返,并且预计它将被发回.有关详细信息,请参阅前向兼容数据协定一文.
ASMX
对于ASMX,情况是一样的.您可以添加新属性,所有客户端都应该可以使用.在这种情况下,您还可以使用IExtensibleDataObject界面.
最后评论
这个答案基于VS 2015的实证测试.我强烈建议你这样做:即编写简单的WCF/ASMX服务器和客户端,并验证我描述的行为.我花了几分钟才这样做.或者甚至更好,您可以使用现有的服务.
我建议您进行其他测试,因为您可能正在使用某些非默认配置来更改WCF/ASMX服务的默认行为,因此最好检查一下.我不知道这种配置,但你永远不知道.
| 归档时间: |
|
| 查看次数: |
114 次 |
| 最近记录: |