我们有一个状态服务,可以将数据保存在ReliableDictionary
中。我们注意到今天此服务中缺少少量数据。
我们进行了最近的代码更新,该更新更改了词典中存储的一个模型的名称空间和组件,但是数据合同本身没有变化。
之前:
namespace MainProject.StatefulService.Models
{
[DataContract]
public class ColorElement
{
[DataMember(Name = "Color")]
private readonly Color color;
// Shortened for clarity.
}
}
之后:
namespace MainProject.Models
{
[DataContract]
public class ColorElement
{
[DataMember(Name = "Color")]
private readonly Color color;
// Shortened for clarity.
}
}
有什么方法可以更改模型的组装/名称空间,可能会在可靠的字典中引起问题?
如下所述:https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric/service-fabric-application-upgrade-upgrade-data-serialization
更改类名称或名称空间将影响您的序列化格式。
我没有尝试过它,但是我认为,如果您在数据合同中指定名称和名称空间,则这些属性将以序列化格式而不是类和汇编名称空间,以便以后对类的任何更改都不会影响序列化格式 - 但这只是基于我与WCF相关的猜测,而不是与任何织物相关的猜测。