获取 my.settings 中项目的"name"



我想要if my.settingings.count的名称,而不是值。下面的示例:

Dim bind()() As Object = {
  New Object() {"countForward"},
  New Object() {"countInstalls"},
  New Object() {"countKeys"},
  New Object() {"countUpgrade"}}
For Each ary In bind
  My.Settings(CStr(ary.First)) = "0"
Next

我想要的是与此相似的东西:

Dim bind()() As Object = {
  New Object() {my.settings.countForward.name},
  New Object() {my.settings.countInstalls.name},
  New Object() {my.settings.countKeys.name},
  New Object() {my.settings.countUpgrade.name}}

谢谢桑迪

您可以使用反射

实现此目标
' get properties whose names contain "count"
' return as object arrays
Dim bind()() As Object =
    My.Settings.
    GetType().
    GetProperties().
    Where(Function(p) p.Name.Contains("count")).
    Select(Function(p) New Object() {p.Name}).
    ToArray()

编辑

我做了更多的挖掘,您根本不需要反思。有一个名为Properties的属性,该属性仅返回用户属性。

Dim bind()() As Object =
    My.Settings.Properties.
    OfType(Of Configuration.SettingsProperty).
    Select(Function(p) New Object() {p.Name}).
    ToArray()

callbyname(my.settings,namefproperty,microsoft.visualbasic.calltype.get,nothene)

相关内容

最新更新