CSLA/ReactiveUI序列化问题



我正在尝试使用CSLA(最新版本)以及ReactiveUI/Reactive Extensions。

使用ReactiveUI(bind/OnewayBind)创建WPF结合并使用Toproperty方法时,似乎基本逻辑使用Rx可观察的rx可观察。fromeventPattern将CSLA的属性变为CSLA的属性事件挂钩。

发生的问题是CSLA认为这些处理程序应该是可序列化的。

这是由BindableBase中的代码确定的

if (value.Method.IsPublic && 
       (value.Method.DeclaringType.IsSerializable || 
        value.Method.IsStatic))
      _serializableChangedHandlers = (PropertyChangedEventHandler)
        System.Delegate.Combine(_serializableChangedHandlers, value);
    else
      _nonSerializableChangedHandlers = (PropertyChangedEventHandler)
        System.Delegate.Combine(_nonSerializableChangedHandlers, value);

在这种情况下,该方法是在反应性膨胀中创建的匿名代表。这是给出的具有Isserializable == true

这会导致处理程序添加到可序列化列表中。

关于我可能会做的任何建议,以使这些处理程序不添加到可序列化处理程序中?

看来这是reactiveui中的一个错误。如果它们的类型实际上不是可序列化的,并且不是设计用于跨应用程序,过程或网络边界的流动,则不应将其标记为可序列化的。

相关内容

  • 没有找到相关文章