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.
5 using System
.Runtime
.Serialization
;
10 public sealed class DBNull
: ISerializable
, IConvertible
16 private DBNull(SerializationInfo info
, StreamingContext context
)
18 throw new NotSupportedException(SR
.NotSupported_DBNullSerial
);
21 public static readonly DBNull Value
= new DBNull();
23 public void GetObjectData(SerializationInfo info
, StreamingContext context
)
25 UnitySerializationHolder
.GetUnitySerializationInfo(info
, UnitySerializationHolder
.NullUnity
);
28 public override string ToString()
33 public string ToString(IFormatProvider
? provider
)
38 public TypeCode
GetTypeCode()
40 return TypeCode
.DBNull
;
43 bool IConvertible
.ToBoolean(IFormatProvider
? provider
)
45 throw new InvalidCastException(SR
.InvalidCast_FromDBNull
);
48 char IConvertible
.ToChar(IFormatProvider
? provider
)
50 throw new InvalidCastException(SR
.InvalidCast_FromDBNull
);
53 sbyte IConvertible
.ToSByte(IFormatProvider
? provider
)
55 throw new InvalidCastException(SR
.InvalidCast_FromDBNull
);
58 byte IConvertible
.ToByte(IFormatProvider
? provider
)
60 throw new InvalidCastException(SR
.InvalidCast_FromDBNull
);
63 short IConvertible
.ToInt16(IFormatProvider
? provider
)
65 throw new InvalidCastException(SR
.InvalidCast_FromDBNull
);
68 ushort IConvertible
.ToUInt16(IFormatProvider
? provider
)
70 throw new InvalidCastException(SR
.InvalidCast_FromDBNull
);
73 int IConvertible
.ToInt32(IFormatProvider
? provider
)
75 throw new InvalidCastException(SR
.InvalidCast_FromDBNull
);
78 uint IConvertible
.ToUInt32(IFormatProvider
? provider
)
80 throw new InvalidCastException(SR
.InvalidCast_FromDBNull
);
83 long IConvertible
.ToInt64(IFormatProvider
? provider
)
85 throw new InvalidCastException(SR
.InvalidCast_FromDBNull
);
88 ulong IConvertible
.ToUInt64(IFormatProvider
? provider
)
90 throw new InvalidCastException(SR
.InvalidCast_FromDBNull
);
93 float IConvertible
.ToSingle(IFormatProvider
? provider
)
95 throw new InvalidCastException(SR
.InvalidCast_FromDBNull
);
98 double IConvertible
.ToDouble(IFormatProvider
? provider
)
100 throw new InvalidCastException(SR
.InvalidCast_FromDBNull
);
103 decimal IConvertible
.ToDecimal(IFormatProvider
? provider
)
105 throw new InvalidCastException(SR
.InvalidCast_FromDBNull
);
108 DateTime IConvertible
.ToDateTime(IFormatProvider
? provider
)
110 throw new InvalidCastException(SR
.InvalidCast_FromDBNull
);
113 object IConvertible
.ToType(Type type
, IFormatProvider
? provider
)
115 return Convert
.DefaultToType((IConvertible
)this, type
, provider
);