序列化共享字段

时间:2014-01-29 08:20:11

标签: vb.net serialization persistence static-members

我有一个类具有私有静态(共享,因为我在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。这就是我为此使用共享变量的原因。但它在序列化/反序列化后不保留其值。所以...关于如何做到这一点的任何想法?

谢谢!

0 个答案:

没有答案