VB отражение в каждом цикле - PullRequest
0 голосов
/ 10 февраля 2009

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

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 ]

2 голосов
/ 10 февраля 2009

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

For Each item As Object In rawData ''//AAAA
0 голосов
/ 10 февраля 2009

Только не указывайте тип:

For Each item in rawData
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...