Есть ли способ увидеть, существует ли поле в объекте на основе IDataReader без проверки исключения IndexOutOfRangeException?
В сущности, у меня есть метод, который принимает объект на основе IDataReader и создает строго типизированный список записей. В 1 случае один считыватель данных имеет поле, которое другие нет. Я не хочу переписывать все запросы, которые подают этот метод, чтобы включить некоторую форму этого поля, если мне это не нужно. Единственный способ, которым я смог выяснить, как это сделать до сих пор, - это бросить 1 уникальное поле в блок try/catch, как показано ниже.
try
{
tmp.OptionalField = reader["optionalfield"].ToString();
}
catch (IndexOutOfRangeException ex)
{
//do nothing
}
Есть ли более чистый способ добавить "необязательное поле" к другим запросам или скопировать метод загрузки, так что 1 версия использует необязательное поле, а другая - нет?
Я тоже в рамках 2.0.