Mono 是否支持用户设置中的 StringCollections?
Does Mono support StringCollections in user settings?
我一直在开发当前包含 System.Collections.Specialized.StringCollection
用户设置的 Winforms 应用程序。在 Windows,此代码用于更新和保存设置:
private void UpdateDirList() {
Properties.Settings.Default.SearchDirs.Clear();
Properties.Settings.Default.SearchDirs.AddRange(_searchDirs.ToArray());
Properties.Settings.Default.Save();
}
user.config 在 Windows 机器上的相关摘录:
<setting name="SearchDirs" serializeAs="Xml">
<value>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<string>C:\projects\a</string>
<string>C:\projects\b</string>
</ArrayOfString>
</value>
</setting>
在 Mono 下尝试 运行 同一应用程序时,<ArrayOfString>
元素丢失,即使我已验证 Properties.Settings.Default.SearchDirs
对象确实包含路径:
<setting name="SearchDirs" serializeAs="Xml">
<value />
</setting>
Mono不支持StringCollection吗?我是不是用错了?
嗯,我曾使用 C# 为 Mono/Linux 和 Windows 工作过一次。它并不总是相同的!
我想知道您为什么要使用 ToArray() - 需要吗?
而不是 ToList()?它有效吗? List 现在是恕我直言的首选,它可以用作 IEnumerable 和 IList 等。...
有时需要一种解决方法 - 目录可以很容易地写成一个字符串,
以e分隔。 G。 '|' - 这是路径中不允许的字符 - Linux 和 Windows.
中均不允许
var searchDirsCsv = string.Join("|", _searchDirs);
_searchDirs = searchDirsCsv.Split('|);
你怎么看?
我一直在开发当前包含 System.Collections.Specialized.StringCollection
用户设置的 Winforms 应用程序。在 Windows,此代码用于更新和保存设置:
private void UpdateDirList() {
Properties.Settings.Default.SearchDirs.Clear();
Properties.Settings.Default.SearchDirs.AddRange(_searchDirs.ToArray());
Properties.Settings.Default.Save();
}
user.config 在 Windows 机器上的相关摘录:
<setting name="SearchDirs" serializeAs="Xml">
<value>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<string>C:\projects\a</string>
<string>C:\projects\b</string>
</ArrayOfString>
</value>
</setting>
在 Mono 下尝试 运行 同一应用程序时,<ArrayOfString>
元素丢失,即使我已验证 Properties.Settings.Default.SearchDirs
对象确实包含路径:
<setting name="SearchDirs" serializeAs="Xml">
<value />
</setting>
Mono不支持StringCollection吗?我是不是用错了?
嗯,我曾使用 C# 为 Mono/Linux 和 Windows 工作过一次。它并不总是相同的!
我想知道您为什么要使用 ToArray() - 需要吗? 而不是 ToList()?它有效吗? List 现在是恕我直言的首选,它可以用作 IEnumerable 和 IList 等。...
有时需要一种解决方法 - 目录可以很容易地写成一个字符串, 以e分隔。 G。 '|' - 这是路径中不允许的字符 - Linux 和 Windows.
中均不允许var searchDirsCsv = string.Join("|", _searchDirs);
_searchDirs = searchDirsCsv.Split('|);
你怎么看?