有没有办法查看一个字段是否存在于基于 IDataReader 的对象中,而无需检查 IndexOutOfRangeException?
本质上,我有一个方法,它接受一个基于 IDataReader 的对象并创建一个强类型的记录列表。在一种情况下,一个数据读取器具有其他人没有的字段。如果我不需要的话,我真的不想重写所有提供此方法的查询以包含该字段的某种形式。到目前为止,我能够弄清楚如何做到这一点的唯一方法是将 1 个唯一字段放入 try/catch 块中,如下所示。
try
{
tmp.OptionalField = reader["optionalfield"].ToString();
}
catch (IndexOutOfRangeException ex)
{
//do nothing
}
除了将“可选字段”添加到其他查询或复制加载方法以使 1 个版本使用可选字段而另一个不使用之外,是否有更简洁的方法?
我也在2.0框架中。