//------------------------------------------------------------------------------
//
// 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);
}
}
}
}