2009-02-10 2 views
0

Я пытаюсь использовать неизвестный тип в течение каждого цикла в соответствии со следующим кодом:VB отражение в каждой петле

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» не объявлен, что я подразумеваю, что он не существует как правильный класс.

Целью является вызов веб-службы в другом месте, и независимо от того, какой веб-сервис я вызываю, используйте отражение, чтобы добавить результирующую информацию о объекте данных в базу данных.

Что, если таковые имеются ограничения на делать что-то вроде

 
Dim myObject As variableInstanceOfTypeObjectHere 

или я делаю более фундаментальную ошибку? Если я прав, какие обходные пути, если они есть?

ответ

2

Когда вы объявляете переменную «As» типа, что означает, что вы знаете тип в компилировать время. Это позволяет компилятору проверить, что вы делаете с ним. В этом случае вы не знаете тип во время компиляции - вы получаете его во время выполнения. Все, что вы знаете, это то, что каждый элемент является объектом, поэтому либо не указывайте тип (как предложено Джоэлем), либо укажите его как Объект:

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

Просто не указать тип:

For Each item in rawData 
Смежные вопросы