public override void GetObjectData(SerializationInfo info, StreamingContext context) {
int subErrors = 0;
string numPrefix;
// call base implementation
base.GetObjectData(info, context);
// Serialize our members
info.AddValue(SERIALIZATION_PARAM_FILENAME, Filename);
info.AddValue(SERIALIZATION_PARAM_LINE, Line);
// Serialize rest of errors, along with count
// (since first error duplicates this error, only worry if
// there is more than one)
if ((_errors != null) &&
(_errors.Length > 1 )){
subErrors = _errors.Length;
for (int i = 0; i < _errors.Length; i++) {
numPrefix = i.ToString(CultureInfo.InvariantCulture);
info.AddValue(numPrefix + SERIALIZATION_PARAM_ERROR_DATA,
_errors[i]);
info.AddValue(numPrefix + SERIALIZATION_PARAM_ERROR_TYPE,
_errors[i].GetType());
}
}
info.AddValue(SERIALIZATION_PARAM_ERROR_COUNT, subErrors);
}