0

非常感谢大家抽出时间来做这件事!

我这样做正确吗?它说“参数计数不匹配”。对于SetValue方法

For i = 0 To (missingFieldName.Count) - 1

Dim propertyiInfo As System.Reflection.PropertyInfo =       
GetType(ImportFields).GetProperty(missingValuesTakenfromUser.missingFieldAcquired(i, 0))

  Dim fieldacquired As String = missingValuesTakenfromUser.missingFieldAcquired(i, 1)

  propertyiInfo.SetValue(fields, fieldacquired, New Object() {0})

Next i

fields 是类 ImportFields 的一个实例。在过去的 2 天内尝试了 100 种不同的方法来解决这个问题。拼命寻找解决方案,请有人?

4

2 回答 2

0

对于非索引属性,第三个参数应该为 null,而不是空数组。尝试这个:

propertyiInfo.SetValue(fields, fieldacquired, null);

如果您使用 .net 4.5,则有一个新的重载,只有两个参数可供您使用:

propertyiInfo.SetValue(fields, fieldacquired); // .net 4.5 only
于 2013-06-09T11:41:53.320 回答
0

经过4天的连续奋斗,得到了它。这是怎么做的

非常感谢 Jods 在上面给出的提示。

For i = 0 To (missingFieldName.Count) - 1

Dim propertyiInfo As System.Reflection.PropertyInfo =   
GetType(ImportFields).GetProperty(missingValuesTakenfromUser.missingFieldAcquired(i, 0))

 Dim fieldacquired As String = missingValuesTakenfromUser.missingFieldAcquired(i, 1)

 propertyiInfo.GetValue(fields, Nothing)(0) = fieldacquired

Next i

实际上,当他们说索引项目时,MS 有点令人困惑。这对我来说意味着他们指的是数组。

非常感谢所有努力为我解决这个问题的人。

于 2013-06-10T06:21:07.523 回答