【发布时间】:2019-02-20 08:40:09
【问题描述】:
WCF 中的原始 SOAP 合同(我故意省略了 DTO 属性以提高可读性):
public class A : B
{
public int Field1 {get;set;}
public int Field2 {get;set;}
}
public abstract class B
{
public int Field3 {get;set;}
}
一段时间后,这份原始合同交给客户,他们使用它。大家开心。但后来我决定将一个字段移到抽象级别:
public class A : B
{
public int Field2 {get;set;}
}
public abstract class B
{
public int Field1 {get;set;}//heh, become abstract
public int Field3 {get;set;}
}
所以,基本上,如果这个字段被添加到每个具体类中,基本上是一样的,而对于 A 没有任何变化,但这会破坏旧客户端。
为什么会这样?如何在 SOAP 中实现 REST 灵活性,您可以在其中添加字段/将其从具体类移动到抽象并且一切正常?
【问题讨论】: