Asp.net web api 在web API中处理数据契约更改的最佳实践
假设我的web API中有我的car对象,如下所示:Asp.net web api 在web API中处理数据契约更改的最佳实践,asp.net-web-api,datacontract,Asp.net Web Api,Datacontract,假设我的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;
[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;
}
但这似乎不是一个非常灵活的方法,如果数据契约发展很多,我的代码中会有很多冗余,而且很难跟踪这么多版本
有没有更好的方法来处理这个问题