2

我有一个让我抓狂的问题。我想将哈希表添加到设置中(并添加了 2 个哈希表),但是当我尝试使用它时,它抛出了一个异常(对象引用未设置为对象的实例。)。然后我查看了 app.config,它看起来像这样:

<?xml version="1.0" encoding="utf-8" ?>
   <configuration>
     <configSections>
     </configSections>

   </configuration>

然后我在 app.config 文件中添加了两个哈希表,现在我的配置文件如下所示:

<?xml version="1.0" encoding="utf-8" ?>

    <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
        <section name="APPNAME.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
    </sectionGroup>
</configSections>

<userSettings>
    <APPNAME.Properties.Settings>
      <setting name="UserInfo" serializeAs="System.Collections.Hashtable">
        <value />
      </setting>
      <setting name="UserText" serializeAs="System.Collections.Hashtable">
        <value />
      </setting>
    </APPNAME.Properties.Settings>
</userSettings>

当我尝试使用哈希表时,它抛出了以下异常:无法解析属性“serializeAs”的值。

我google了一下,没成功,我在msdn上搜索过也没有找到。

4

1 回答 1

1

Hashtable 不支持序列化为 XML。您在 Settings.Settings 中只有 2 个可用选项。XML 或字符串。将您的序列化选项更改为

serializeAs="Binary"

同样,在您的 Settings 类中,您必须将序列化选项属性指定为

[SettingsSerializeAs(SettingsSerializeAs.Binary)]
于 2013-07-27T17:22:13.727 回答