//------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // // [....] // [....] // [....] //------------------------------------------------------------------------------ namespace System.Data { using System; using System.Collections; using System.Data; using System.Runtime.Serialization; /// /// DEV: The exception that is throwing from strong typed DataSet when user access to DBNull value. /// [Serializable] public class StrongTypingException : DataException { protected StrongTypingException(SerializationInfo info, StreamingContext context) : base(info, context) { } /// /// [To be supplied.] /// public StrongTypingException() : base() { HResult = HResults.StrongTyping; } public StrongTypingException(string message) : base(message) { HResult = HResults.StrongTyping; } /// /// [To be supplied.] /// public StrongTypingException(string s, Exception innerException) : base(s, innerException) { HResult = HResults.StrongTyping; } } /// /// DEV: The exception that is throwing in generating strong typed DataSet when name conflict happens. /// [Serializable] public class TypedDataSetGeneratorException : DataException { private ArrayList errorList; private string KEY_ARRAYCOUNT = "KEY_ARRAYCOUNT"; private string KEY_ARRAYVALUES = "KEY_ARRAYVALUES"; protected TypedDataSetGeneratorException(SerializationInfo info, StreamingContext context) : base(info, context) { int count = (int) info.GetValue(KEY_ARRAYCOUNT, typeof(System.Int32)); if (count > 0) { errorList = new ArrayList(); for (int i = 0; i < count; i++) { errorList.Add(info.GetValue(KEY_ARRAYVALUES + i, typeof(System.String))); } } else errorList = null; } /// /// [To be supplied.] /// public TypedDataSetGeneratorException() : base() { errorList = null; HResult = HResults.StrongTyping; } public TypedDataSetGeneratorException(string message) : base(message) { HResult = HResults.StrongTyping; } public TypedDataSetGeneratorException(string message, Exception innerException) : base(message, innerException) { HResult = HResults.StrongTyping; } /// /// [To be supplied.] /// public TypedDataSetGeneratorException(ArrayList list) : this() { errorList = list; HResult = HResults.StrongTyping; } /// /// [To be supplied.] /// public ArrayList ErrorList { get { return errorList; } } [System.Security.Permissions.SecurityPermissionAttribute(System.Security.Permissions.SecurityAction.LinkDemand, Flags=System.Security.Permissions.SecurityPermissionFlag.SerializationFormatter)] public override void GetObjectData(SerializationInfo info, StreamingContext context) { base.GetObjectData(info, context); if (errorList != null) { info.AddValue(KEY_ARRAYCOUNT, errorList.Count); for (int i = 0; i < errorList.Count; i++) { info.AddValue(KEY_ARRAYVALUES + i, errorList[i].ToString()); } } else { info.AddValue(KEY_ARRAYCOUNT, 0); } } } }