1 // ==++==
2 //
3 //   Copyright (c) Microsoft Corporation.  All rights reserved.
4 //
5 // ==--==
6 ////////////////////////////////////////////////////////////////////////////////
7 // Void
8 //    This class represents a Missing Variant
9 ////////////////////////////////////////////////////////////////////////////////
10 namespace System {
11 
12     using System;
13     using System.Runtime.Remoting;
14     using System.Runtime.Serialization;
15     using System.Security.Permissions;
16 [System.Runtime.InteropServices.ComVisible(true)]
17     [Serializable]
18     public sealed class DBNull : ISerializable, IConvertible {
19 
20         //Package private constructor
DBNull()21         private DBNull(){
22         }
23 
DBNull(SerializationInfo info, StreamingContext context)24         private DBNull(SerializationInfo info, StreamingContext context) {
25             throw new NotSupportedException(Environment.GetResourceString("NotSupported_DBNullSerial"));
26         }
27 
28         public static readonly DBNull Value = new DBNull();
29 
30         [System.Security.SecurityCritical]
GetObjectData(SerializationInfo info, StreamingContext context)31         public void GetObjectData(SerializationInfo info, StreamingContext context) {
32             UnitySerializationHolder.GetUnitySerializationInfo(info, UnitySerializationHolder.NullUnity, null, null);
33         }
34 
ToString()35         public override String ToString() {
36             return String.Empty;
37         }
38 
ToString(IFormatProvider provider)39         public String ToString(IFormatProvider provider) {
40             return String.Empty;
41         }
42 
GetTypeCode()43         public TypeCode GetTypeCode() {
44             return TypeCode.DBNull;
45         }
46 
47         /// <internalonly/>
IConvertible.ToBoolean(IFormatProvider provider)48         bool IConvertible.ToBoolean(IFormatProvider provider) {
49             throw new InvalidCastException(Environment.GetResourceString("InvalidCast_FromDBNull"));
50         }
51 
52         /// <internalonly/>
IConvertible.ToChar(IFormatProvider provider)53         char IConvertible.ToChar(IFormatProvider provider) {
54             throw new InvalidCastException(Environment.GetResourceString("InvalidCast_FromDBNull"));
55         }
56 
57         /// <internalonly/>
IConvertible.ToSByte(IFormatProvider provider)58         sbyte IConvertible.ToSByte(IFormatProvider provider) {
59             throw new InvalidCastException(Environment.GetResourceString("InvalidCast_FromDBNull"));
60         }
61 
62         /// <internalonly/>
IConvertible.ToByte(IFormatProvider provider)63         byte IConvertible.ToByte(IFormatProvider provider) {
64             throw new InvalidCastException(Environment.GetResourceString("InvalidCast_FromDBNull"));
65         }
66 
67         /// <internalonly/>
IConvertible.ToInt16(IFormatProvider provider)68         short IConvertible.ToInt16(IFormatProvider provider) {
69             throw new InvalidCastException(Environment.GetResourceString("InvalidCast_FromDBNull"));
70         }
71 
72         /// <internalonly/>
IConvertible.ToUInt16(IFormatProvider provider)73         ushort IConvertible.ToUInt16(IFormatProvider provider) {
74             throw new InvalidCastException(Environment.GetResourceString("InvalidCast_FromDBNull"));
75         }
76 
77         /// <internalonly/>
IConvertible.ToInt32(IFormatProvider provider)78         int IConvertible.ToInt32(IFormatProvider provider) {
79             throw new InvalidCastException(Environment.GetResourceString("InvalidCast_FromDBNull"));
80         }
81 
82         /// <internalonly/>
IConvertible.ToUInt32(IFormatProvider provider)83         uint IConvertible.ToUInt32(IFormatProvider provider) {
84             throw new InvalidCastException(Environment.GetResourceString("InvalidCast_FromDBNull"));
85         }
86 
87         /// <internalonly/>
IConvertible.ToInt64(IFormatProvider provider)88         long IConvertible.ToInt64(IFormatProvider provider) {
89             throw new InvalidCastException(Environment.GetResourceString("InvalidCast_FromDBNull"));
90         }
91 
92         /// <internalonly/>
IConvertible.ToUInt64(IFormatProvider provider)93         ulong IConvertible.ToUInt64(IFormatProvider provider) {
94             throw new InvalidCastException(Environment.GetResourceString("InvalidCast_FromDBNull"));
95         }
96 
97         /// <internalonly/>
IConvertible.ToSingle(IFormatProvider provider)98         float IConvertible.ToSingle(IFormatProvider provider) {
99             throw new InvalidCastException(Environment.GetResourceString("InvalidCast_FromDBNull"));
100         }
101 
102         /// <internalonly/>
IConvertible.ToDouble(IFormatProvider provider)103         double IConvertible.ToDouble(IFormatProvider provider) {
104             throw new InvalidCastException(Environment.GetResourceString("InvalidCast_FromDBNull"));
105         }
106 
107         /// <internalonly/>
IConvertible.ToDecimal(IFormatProvider provider)108         decimal IConvertible.ToDecimal(IFormatProvider provider) {
109             throw new InvalidCastException(Environment.GetResourceString("InvalidCast_FromDBNull"));
110         }
111 
112         /// <internalonly/>
IConvertible.ToDateTime(IFormatProvider provider)113         DateTime IConvertible.ToDateTime(IFormatProvider provider) {
114             throw new InvalidCastException(Environment.GetResourceString("InvalidCast_FromDBNull"));
115         }
116 
117         /// <internalonly/>
IConvertible.ToType(Type type, IFormatProvider provider)118         Object IConvertible.ToType(Type type, IFormatProvider provider) {
119             return Convert.DefaultToType((IConvertible)this, type, provider);
120         }
121     }
122 }
123 
124