Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在VB.NET 2010中反序列化时的默认值_Vb.net_Serialization_Dictionary_Deserialization_Vb.net 2010 - Fatal编程技术网

在VB.NET 2010中反序列化时的默认值

在VB.NET 2010中反序列化时的默认值,vb.net,serialization,dictionary,deserialization,vb.net-2010,Vb.net,Serialization,Dictionary,Deserialization,Vb.net 2010,我有一个(可序列化)类(Accounts),在这个类中有一些属性,包括另一个可序列化类(Symbols)的字典 我序列化类(帐户)并将它们保存到一个文件中,以便下次运行时使用 现在,我有了这个应用程序的新版本,它在(Symbols)类中包含了一个新属性。当我反序列化(帐户)时,它会正确加载字典,但会加载不需要的值(字符串为nothing,布尔值为false) 反序列化时,是否可以为Symbols类中的这些新属性设置默认值?请注意,我希望没有For循环,因为帐户和符号的字典很大,这意味着我需要一个

我有一个(可序列化)类(Accounts),在这个类中有一些属性,包括另一个可序列化类(Symbols)的字典

我序列化类(帐户)并将它们保存到一个文件中,以便下次运行时使用

现在,我有了这个应用程序的新版本,它在(Symbols)类中包含了一个新属性。当我反序列化(帐户)时,它会正确加载字典,但会加载不需要的值(字符串为nothing,布尔值为false)

反序列化时,是否可以为Symbols类中的这些新属性设置默认值?请注意,我希望没有For循环,因为帐户和符号的字典很大,这意味着我需要一个巨大的double For循环来使用For循环解决这个问题

谢谢。
Ahmad

您只需为每个属性指定一个默认值:

对于支持字段:

Private _someProperty as Boolean = True
对于自动实现的属性:

Public Property SomeProperty As Boolean = True

我通过将所有变量作为字符串(作为对象处理)来解决这个问题,在我的代码中,我检查值是否为空,然后在需要时指定默认值。。。我知道这不是最好的解决方案,但至少它成功了

将默认值添加到私有变量将不起作用。似乎在从序列化中读取字典后,对于字符串和对象,它将通过(无)覆盖,对于数字和布尔变量,它将通过(0和False)覆盖……我设法解决了这个问题,将所有变量作为字符串(作为对象处理),并在代码中,我检查值是否为空,然后在需要时指定默认值。。。我知道这不是最好的解决方案,但至少它成功了!我通过将所有变量作为字符串(作为对象处理)来解决这个问题,在我的代码中,我检查值是否为空,然后在需要时指定默认值。。。我知道这不是最好的解决方案,但至少它成功了!