我有一个类具有私有静态(共享,因为我在VB.NET中)字段及其关联的公共静态属性,因为它存储了一个应该对该类的所有实例都相同的变量。到目前为止,非常好。
当尝试二进制序列化这些类型的对象时问题到了,因为这个共享字段是正确存储的,并且在反序列化时返回其默认值。
我认为这是预期的行为,所以我的问题是......如何让共享字段持久化?
我已经读过类似问题的一些评论,说这是一个糟糕的设计,但在我的情况下它确实有意义(AFAIK),因为这个变量对所有对象应该是相同的,但是可以通过用户因此应该存储。
你能建议另一种方式吗?
谢谢!
编辑 :(对不起,我很匆忙,直到现在才能完成我的问题)
My Class看起来像这样:
Public MustInherit Class NitrogenController
Private _active As Boolean
Private Shared _controlInterval As TimeSpan
Private _lastControlTime As Date
Public Property Active() As Boolean
Public Shared Property ControlInterval() As System.TimeSpan
'other properies that must be persisted
Public Function Control() As Boolean
If Not Now > _lastControlTime.Add(_controlInterval) Or Not _active Then
Return False
Else
DoControl()
_lastControlTime = Now
Return True
End If
End Function
End Class
所以,问题是我可以有几个氮控制器,但它们都应该具有相同的_controlInterval。这就是我为此使用共享变量的原因。但它在序列化/反序列化后不保留其值。所以...关于如何做到这一点的任何想法?
谢谢!