由于每个人都花时间在这上面,所以需要大量的预付款!
我是否正确地这样做?它说“参数计数不匹配”。对于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的一个实例。在过去的两天里尝试了100种不同的方法。拼命寻找解决方案,请有人吗?
答案 0 :(得分:0)
对于非索引属性,第三个参数应为null,而不是空数组。试试这个:
propertyiInfo.SetValue(fields, fieldacquired, null);
如果使用.net 4.5,则会出现一个新的重载,只能使用两个参数:
propertyiInfo.SetValue(fields, fieldacquired); // .net 4.5 only
答案 1 :(得分:0)
非常感谢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有点混乱。对我来说,他们指的是阵列。
非常感谢所有为我解决这个问题的人。