Оригинальный контракт SOAP в WCF (я специально пропустил атрибуты 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 ничего не меняется, НО это ломает старуюклиенты.
Почему это так?Как добиться гибкости REST в SOAP, где вы можете просто добавить поле / переместить его из конкретного класса в абстракцию, и все работает?