public static void DefaultWriteObject(SerializationInfo info, StreamingContext context, Object instance) { var thisType = instance.GetType(); var mi = FormatterServices.GetSerializableMembers(thisType, context); for (var i = 0; i < mi.Length; i++) { info.AddValue(mi[i].Name, ((FieldInfo) mi[i]).GetValue(instance)); } }