假定我的web API中有我的car对象,如下所示:
[DataContract(Name = "Car")]
public class Car
{
[DataMember]
private string Model;
}
然后,在Web API运行一段时间之后,我想再添加一个文件到car对象中,例如:
[DataContract(Name = "Car")]
public class Car
{
[DataMember]
private string Model;
[DataMember]
private int HorsePower;
}
但这有时会导致原始客户端中断。 我在互联网上进行搜索,发现使用API版本和数据合同版本可以解决此问题,通过以下类定义,我可以让新版本的API在新版本的数据合同上运行。
[DataContract(Name = "Car")]
public class CarV1
{
[DataMember]
private string Model;
}
[DataContract(Name = "Car")]
public class CarV2
{
[DataMember]
private string Model;
[DataMember]
private int HorsePower;
}
但这似乎不是一个非常灵活的方法,如果数据协定发展了很多,我的代码将有很多冗余,而且很难跟踪这么多版本。
有没有更好的方法来解决这个问题?