1 // Licensed to the .NET Foundation under one or more agreements. 2 // The .NET Foundation licenses this file to you under the MIT license. 3 // See the LICENSE file in the project root for more information. 4 5 using System.Runtime.Serialization; 6 7 namespace System 8 { 9 [Serializable] 10 public sealed class DBNull : ISerializable, IConvertible 11 { DBNull()12 private DBNull() 13 { 14 } 15 DBNull(SerializationInfo info, StreamingContext context)16 private DBNull(SerializationInfo info, StreamingContext context) 17 { 18 throw new NotSupportedException(SR.NotSupported_DBNullSerial); 19 } 20 21 public static readonly DBNull Value = new DBNull(); 22 GetObjectData(SerializationInfo info, StreamingContext context)23 public void GetObjectData(SerializationInfo info, StreamingContext context) 24 { 25 UnitySerializationHolder.GetUnitySerializationInfo(info, UnitySerializationHolder.NullUnity); 26 } 27 ToString()28 public override string ToString() 29 { 30 return string.Empty; 31 } 32 ToString(IFormatProvider provider)33 public string ToString(IFormatProvider provider) 34 { 35 return string.Empty; 36 } 37 GetTypeCode()38 public TypeCode GetTypeCode() 39 { 40 return TypeCode.DBNull; 41 } 42 IConvertible.ToBoolean(IFormatProvider provider)43 bool IConvertible.ToBoolean(IFormatProvider provider) 44 { 45 throw new InvalidCastException(SR.InvalidCast_FromDBNull); 46 } 47 IConvertible.ToChar(IFormatProvider provider)48 char IConvertible.ToChar(IFormatProvider provider) 49 { 50 throw new InvalidCastException(SR.InvalidCast_FromDBNull); 51 } 52 IConvertible.ToSByte(IFormatProvider provider)53 sbyte IConvertible.ToSByte(IFormatProvider provider) 54 { 55 throw new InvalidCastException(SR.InvalidCast_FromDBNull); 56 } 57 IConvertible.ToByte(IFormatProvider provider)58 byte IConvertible.ToByte(IFormatProvider provider) 59 { 60 throw new InvalidCastException(SR.InvalidCast_FromDBNull); 61 } 62 IConvertible.ToInt16(IFormatProvider provider)63 short IConvertible.ToInt16(IFormatProvider provider) 64 { 65 throw new InvalidCastException(SR.InvalidCast_FromDBNull); 66 } 67 IConvertible.ToUInt16(IFormatProvider provider)68 ushort IConvertible.ToUInt16(IFormatProvider provider) 69 { 70 throw new InvalidCastException(SR.InvalidCast_FromDBNull); 71 } 72 IConvertible.ToInt32(IFormatProvider provider)73 int IConvertible.ToInt32(IFormatProvider provider) 74 { 75 throw new InvalidCastException(SR.InvalidCast_FromDBNull); 76 } 77 IConvertible.ToUInt32(IFormatProvider provider)78 uint IConvertible.ToUInt32(IFormatProvider provider) 79 { 80 throw new InvalidCastException(SR.InvalidCast_FromDBNull); 81 } 82 IConvertible.ToInt64(IFormatProvider provider)83 long IConvertible.ToInt64(IFormatProvider provider) 84 { 85 throw new InvalidCastException(SR.InvalidCast_FromDBNull); 86 } 87 IConvertible.ToUInt64(IFormatProvider provider)88 ulong IConvertible.ToUInt64(IFormatProvider provider) 89 { 90 throw new InvalidCastException(SR.InvalidCast_FromDBNull); 91 } 92 IConvertible.ToSingle(IFormatProvider provider)93 float IConvertible.ToSingle(IFormatProvider provider) 94 { 95 throw new InvalidCastException(SR.InvalidCast_FromDBNull); 96 } 97 IConvertible.ToDouble(IFormatProvider provider)98 double IConvertible.ToDouble(IFormatProvider provider) 99 { 100 throw new InvalidCastException(SR.InvalidCast_FromDBNull); 101 } 102 IConvertible.ToDecimal(IFormatProvider provider)103 decimal IConvertible.ToDecimal(IFormatProvider provider) 104 { 105 throw new InvalidCastException(SR.InvalidCast_FromDBNull); 106 } 107 IConvertible.ToDateTime(IFormatProvider provider)108 DateTime IConvertible.ToDateTime(IFormatProvider provider) 109 { 110 throw new InvalidCastException(SR.InvalidCast_FromDBNull); 111 } 112 IConvertible.ToType(Type type, IFormatProvider provider)113 object IConvertible.ToType(Type type, IFormatProvider provider) 114 { 115 return Convert.DefaultToType((IConvertible)this, type, provider); 116 } 117 } 118 } 119 120