【发布时间】:2012-08-16 03:06:13
【问题描述】:
我将对象存储在我的 saga 数据中,这些对象具有在序列化和反序列化期间应忽略的属性。我尝试使用 [NonSerialized] 和 [JsonIgnore] 标记这些属性(并使用 [DataContract] 注释类而不是使这些属性 [DataMember] ...),但似乎没有任何效果。无论我做什么,当 NServiceBus 调用 Json.NET 来保存传奇数据时,所有属性都会被序列化。我还尝试为有问题的对象实现自定义 JsonConverter,这也被忽略了(是的,我正在使用 [JsonConverter(typeof(MyConverter))] 注释对象类型...)
有没有办法让 saga 持久化以忽略 saga 数据中包含的对象中的属性?作为参考,我使用的是 NServiceBus 3.2.7、Json.NET 4.5.7 和 RavenDB build 960。总线配置为使用 RavenDB 持久性和 saga 持久性。
【问题讨论】:
-
我知道你可能不想听到这个 - 但你为什么要这样做? :-)
-
我有一个复杂的任务被细分为大量较小的任务。较小任务的结果需要组合成整体复杂任务的结果。为此,我将较小任务的结果存储在 saga 数据中。一些属性不应该被序列化的原因是它们包含我不想持久化的相对重量级的数据。我可以重构 saga,以便只有相关数据(变更集)保留在 saga 数据中,我可能稍后会这样做,但我不明白为什么我不能[JsonIgnore] 现在。
-
是的。恐怕我不知道为什么 NonSerialized 被忽略的答案,但是如果您明白我的意思,那么您拥有不是 saga 数据的 saga 数据对我来说没有意义。
标签: c# json.net nservicebus ravendb nservicebus3