我想要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)