我想在项目的默认UserSettings类中保存字典。
我在设置文件的代码中尝试了以下操作,但它失败了:
<Setting Name="MediaKeys" Type="System.Collections.ObjectModel.Dictionary<System.Input.Key, System.IO.FileInfo>" Scope="User">
<Value Profile="(Default)" />
</Setting>
当我查看设置的UI时,我收到此错误消息:
无法加载文件或程序集'System.IO.FileInfo&gt;'或其中一个 依赖。参数不正确。 (HRESULT的例外情况: 0x80070057(E_INVALIDARG))
请记住,我将在另一个时间点处理整个Serializable Dictionary,为什么我会得到这个例外?即使是不可序列化的对象(例如我已经测试过的FileInfo)也不会抛出此异常。
答案 0 :(得分:1)
.NET设置不能很好地处理泛型。这就是我的工作:
[XmlRoot("dictionary")]
public class MyDictionary : SerializableDictionary<int, string>
{
}