public object ReadAtomicNativeObjectInfoAsObject(int odbTypeId) { object o = null; switch (odbTypeId) { case OdbType.ByteId: { o = _fsi.ReadByte(); break; } case OdbType.SByteId: { o = _fsi.ReadSByte(); break; } case OdbType.BooleanId: { o = _fsi.ReadBoolean(); break; } case OdbType.CharacterId: { o = _fsi.ReadChar(); break; } case OdbType.FloatId: { o = _fsi.ReadFloat(); break; } case OdbType.DoubleId: { o = _fsi.ReadDouble(); break; } case OdbType.IntegerId: { o = _fsi.ReadInt(); break; } case OdbType.UIntegerId: { o = _fsi.ReadUInt(); break; } case OdbType.LongId: { o = _fsi.ReadLong(); break; } case OdbType.ULongId: { o = _fsi.ReadULong(); break; } case OdbType.ShortId: { o = _fsi.ReadShort(); break; } case OdbType.UShortId: { o = _fsi.ReadUShort(); break; } case OdbType.DecimalId: { o = _fsi.ReadBigDecimal(); break; } case OdbType.DateId: { o = _fsi.ReadDate(); break; } case OdbType.ObjectOidId: { var oid = _fsi.ReadLong(); o = OIDFactory.BuildObjectOID(oid); break; } case OdbType.ClassOidId: { var cid = _fsi.ReadLong(); o = OIDFactory.BuildClassOID(cid); break; } case OdbType.StringId: { o = _fsi.ReadString(); break; } case OdbType.EnumId: { o = _fsi.ReadString(); break; } } if (o == null) { throw new OdbRuntimeException( NDatabaseError.NativeTypeNotSupported.AddParameter(odbTypeId).AddParameter( OdbType.GetNameFromId(odbTypeId))); } return(o); }