vb.NET试图在My.Settings中存储一个数组

时间:2011-03-15 21:11:57

标签: vb.net arrays configuration

我想在My.Settings中存储一个常规数组。不是ArrayList,不是StringCollection,只是一个字符串Array。可以这样做吗?如果是这样,它是如何完成的?我似乎无法在Visual Studio的设置设计器中找到字符串数组数据类型。

3 个答案:

答案 0 :(得分:2)

更新:请查看MSDN文章Using My.Settings in Visual Basic 2005中的高级设置部分。看起来该部分中概述的方法(子类化ApplicationSettingsBase并提供您自己的属性)可能正是您正在寻找的。


您无法创建类型为String()的设置,大概是因为设置基础架构需要支持任何数组T(),这不适用于大多数类型。

我个人认为只使用StringCollection然后在代码中使用该数组填充数组是有意义的:

Module SettingsExtensions

    Public Function GetMySettingArray() As String()
        Dim mySetting As StringCollection = My.Settings.MySetting

        ' If you're using .NET 3.5 or greater:
        Return mySetting.Cast(Of String)().ToArray()

        ' Otherwise:
        Dim array(mySetting.Count - 1) As String
        mySetting.CopyTo(array, 0)

        Return array
    End Function

End Module

答案 1 :(得分:1)

您无法在My.Settings中直接使用数组。你可以用一个String数组来定义一个类,但为什么不使用StringCollection呢?无论您选择做什么,请记住,您在My.Settings中放置的任何内容都必须是XML可序列化的,因为设置以XML格式保存。

答案 2 :(得分:0)

我认为你不能在My.Settings中存储常规数组。 My.Settings仅用于“设置”,例如颜色,图像等。

如果您有大量字符串,我想我会将它们存储在文本文件,XML文件或SQL服务器数据库中。

如果它是一个非常短的字符串列表...我想你可以把它作为一个单独的字符串存储在my.settings中,每个原始字符串都有一个独特的字符。

当您使用Split()方法将其重新读回原始字符串列表时。

如果确实想在My.Settings中存储一个字符串数组,那么最简单的方法可能是使用“StringCollection”作为设置类型