我正在尝试按照以下代码在每个循环中使用未知类型:
private sub ReflectThis(ByVal rawData As Object())
Dim dataType As Type = rawData(0).GetType()
Dim properties As PropertyInfo() = dataType.getProperties()
For Each item As dataType In rawData ''//AAAA
For Each property As System.Reflection.PropertyInfo properties
''//reflected code use here
我得到的问题是标记为AAAA的行。它抱怨说'dataType'没有声明,我认为它并不是一个合适的类。
目的是在其他地方调用Web服务,无论我调用哪个Web服务,都使用反射将结果数据结构对象的信息添加到数据库中。
对
这样的限制有什么限制?Dim myObject As variableInstanceOfTypeObjectHere
还是我犯了一个更基本的错误?如果我是对的,有什么办法,如果有的话?
答案 0 :(得分:2)
当您将变量“As”声明为类型时,这意味着您知道 compile 时的类型。这让编译器可以检查你正在做什么。在这种情况下,在编译时不知道类型 - 您在执行时获取它。你要知道的是每个项目都是一个对象 - 所以要么不指定类型(如Joel建议的那样),要么将其指定为Object:
For Each item As Object In rawData ''//AAAA
答案 1 :(得分:0)
只是不要指定类型:
For Each item in rawData