如果我仅添加到合同中,是否需要更新 WCF 服务引用?

问题描述 投票:0回答:1

我有一个旧的 WCF 服务项目(在 .NET Framework 4.8 上),以及一个使用它的客户端。我需要使用新参数扩展服务方法。问题是,还有其他客户端正在使用此服务,而我试图避免修改这些客户端。我正在考虑以一种不会影响其他客户的方式来做这件事——没有改变,只是添加。但后来我意识到,我对服务合同进行的更改可能足以要求更新客户的参考 - 即使它们没有破坏性更改。

我正在考虑其中一个

a) 在现有方法的末尾添加新的可选参数:

 [OperationContract(Name = "ExistingMethod")]
 List<ResponseObject> ExistingMethod(int? p1, int? p2, int? p3, ... int? newParameter = null);

或者 b) 创建一个与旧方法相同的新方法,除了它有额外的参数

[OperationContract(Name = "NewMethod")]
List<ResponseObject> NewMethod(int? p1, int? p2, int? p3, ... int? newParameter = null);

这些方法有效吗?其他客户是否仍然能够使用该服务,或者我是否也必须更新这些客户的服务参考?

wcf service-reference
1个回答
0
投票

如果您所做的只是添加功能而不是修改它,并且客户端不使用新功能,则不会影响客户端的使用,并且您不需要更新服务引用。

将服务契约中的属性从非 null 更改为 null 或更改数据成员的属性需要更新服务引用,否则会中断。

© www.soinside.com 2019 - 2024. All rights reserved.