Just a little thing I stumbled across today when trying to use OracleDataReader.GetChar – it is not actually supported. No ObsoleteAttribute, they just buff upon you with NotSupported exception:
public override char GetChar(int i)
{
throw new NotSupportedException();
}
Good news is that GetString works for the char type just fine and you have GetChars method after all.
Out of curiosity I wanted to see if SqlClient.SqlDataReader has it implemented and surprisingly it doesn’t:
[EditorBrowsable(EditorBrowsableState.Never)]
public override char GetChar(int i)
{
throw ADP.NotSupported();
}
This is actually the only method in SqlDataReader that does this thingy. In OracleDataReader though you have following methods sitting and waiting to give you a runtime error:
public DbDataReader GetData(int i)
{
throw new NotSupportedException();
}
public override Guid GetGuid(int i)
{
throw new NotSupportedException();
}
I have no idea what GetData is for, but no surprise GetGuid is not implemented in OracleClient, question though is – “Why not to put ObsoleteAttribute so I know I should not use those methods during compile time?”. There is a bit of a smell when using ObsoleteAttribute for that, but still I’d prefer to know ahead …
No comments:
Post a Comment