我有一个让我发疯的问题。我想在设置中添加哈希表(并添加了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'的值。
我用谷歌搜索但不成功,我在msdn上搜索也没找到。
答案 0 :(得分:1)
Hashtable不支持序列化为XML。您在Settings.Settings中只有2个选项可用。 XML或字符串。将序列化选项更改为
serializeAs="Binary"
同样在Settings类中,您必须将序列化选项属性指定为
[SettingsSerializeAs(SettingsSerializeAs.Binary)]