public override void GetObjectData(SerializationInfo info, StreamingContext context) {
if (info==null) {
throw new ArgumentNullException("info");
}
base.GetObjectData(info, context);
info.AddValue("Types", _classes, typeof(Type[]));
info.AddValue("Exceptions", _exceptions, typeof(Exception[]));
}