VB反射为每个循环

时间:2009-02-10 16:51:07

标签: vb.net reflection

我正在尝试按照以下代码在每个循环中使用未知类型:

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

还是我犯了一个更基本的错误?如果我是对的,有什么办法,如果有的话?

2 个答案:

答案 0 :(得分:2)

当您将变量“As”声明为类型时,这意味着您知道 compile 时的类型。这让编译器可以检查你正在做什么。在这种情况下,在编译时不知道类型 - 您在执行时获取它。你要知道的是每个项目都是一个对象 - 所以要么不指定类型(如Joel建议的那样),要么将其指定为Object:

For Each item As Object In rawData ''//AAAA

答案 1 :(得分:0)

只是不要指定类型:

For Each item in rawData