2010-03-16  Jb Evain  <jbevain@novell.com>

	* BinaryCommon.cs: use MOONLIGHT symbol to disambiguate
	MonoTouch and Moonlight code.

2010-02-26  Robert Jordan  <robertj@gmx.net>

	* ObjectReader.cs (ReadType, GetDeserializationType):
	Add throwOnError parameter that specifies whether to throw an
 	exception if the type/assembly is not found.

	* ObjectReader.cs (ReadTypeMetadata): Ignore unresolvable
 	types while reading the type info. Fixes #430583.

	* ObjectReader.cs (GetDeserializationType): Rethrow caught
 	exceptions as SerializationExceptions.

2009-10-31  Sebastien Pouliot  <sebastien@ximian.com>

	* BinaryCommon.cs: Disable MONO_REFLECTION_SERIALIZER override 
	for Moonlight plugin.

2009-09-30 Gonzalo Paniagua Javier <gonzalo@novell.com>

	* BinaryFormatter.cs: NoCheckDeserialize() was using PeekChar() on a
	reader when it should only read 1 byte. Also BinaryReader.PeekChar()
	tries to set the position of hte stream back to where it was before
	the read, which does not work well with broken Stream
	implementations like BZip2InputStream (reports CanSeek is true when
	it really can't seek). Now we do a Read() and then pass the value we
	read on to the next methods.

	* MessageFormatter.cs: 
	* ObjectReader.cs: added overloads that take a BinaryElement instead
	of reading it from the reader. Only for the methods used in
	NoCheckDeserialize.

	Fixes bug #503435.

2009-03-29  Zoltan Varga  <vargaz@gmail.com>

	* CodeGenerator.cs: Add synchronization as SRE is not thread safe.

2008-09-17  Robert Jordan  <robertj@gmx.net>>

	* ObjectReader.cs (ReadTypeMetadata): Replace the check for
	ISerializable with something less `reflective'.
	Fixes #421664.

2008-06-27  Andreas Nahr <ClassDevelopment@A-SoftTech.com>

	* BinaryFormatter.cs: Fix parameter name

2008-04-26  Jb Evain  <jbevain@novell.com>

	* CodeGenerator.cs: replace usage of new Type [0] by
	Type.EmptyTypes. Found with Gendarme.

2008-04-02  Andreas Nahr  <ClassDevelopment@A-SoftTech.com>

	* BinaryFormatter.cs: Fix parameter names

2007-08-25  Robert Jordan  <robertj@gmx.net>

	* ObjectReader.cs, ObjectWriter.cs, CodeGenerator.cs:
	Use DateTime.From/ToBinary. Fixes #82400.

2007-08-25  Alan McGovern  <amcgovern@novell.com>

	* ObjectReader.cs, ObjectWriter.cs, CodeGenerator.cs:
	Reverted fix for #82400.

2007-08-25  Robert Jordan  <robertj@gmx.net>

	* ObjectReader.cs, ObjectWriter.cs, CodeGenerator.cs:
	Use DateTime.From/ToBinary. Fixes #82400.

2007-08-23  Robert Jordan  <robertj@gmx.net>

	* ObjectReader.cs, ObjectReader.cs: Map between System.MonoType[] and
	MS.NET's System.RuntimeType[].
	
	* ObjectReader.cs (ReadType): When a type couldn't be found, emit
	a more useful exception.

2007-05-03  Dick Porter  <dick@ximian.com>

	* BinaryFormatter.cs: Update to 2.0 profile

2006-12-25  Robert Jordan  <robertj@gmx.net>

	* binary_serialization_format.htm: Update the NET_2_0 format.
	* BinaryCommon.cs: MethodFlags is actually an int32. Add NET_2_0 flags.
	* MessageFormatter.cs: Add support for generic method arguments.
	* ObjectWriter.cs, ObjectReader.cs: Map between System.MonoType and
	MS.NET's System.RuntimeType.

2006-12-01  Lluis Sanchez Gual <lluis@novell.com> 

	* MessageFormatter.cs: Include the logical context in the message when
	  throwing an exception. Fixes a compatibility issue with MS.NET.

2006-10-29  Robert Jordan  <robertj@gmx.net>

	* ObjectWriter.cs, ObjectReader [NET_2_0]:
	Use the SerializationObjectManager.

2006-09-05  Raja R Harinath  <rharinath@novell.com>

	Fix #79159
	* ObjectWriter.cs (WritePrimitiveTypeArray) [NET_2_0]: Encode the
	'Kind' of each DateTime.
	* ObjectReader.cs (ReadArrayOfPrimitiveType) [NET_2_0]: Decode the
	'Kind' of each DateTime.

2005-12-07  Sebastien Pouliot  <sebastien@ximian.com>

	* BinaryFormatter.cs: Implemented UnsafeDeserialize and 
	UnsafeDeserializeMethodResponse methods. Fixes last TODO in this
	namespace (for both 1.1 and 2.0 profiles).

2005-12-07  Lluis Sanchez Gual  <lluis@ximian.com>

	* ObjectReader.cs: Added null check in GetDeserializationType.
	Patch by Ben Maurer. Fixes bug #69666.

2005-12-01  Sebastien Pouliot  <sebastien@ximian.com>

	* BinaryFormatter.cs: Added a demand for SerializationFormatter on 
	Serialize method (to make some CAS test work correctly).

2005-05-26  Ben Maurer  <bmaurer@ximian.com>

	* CodeGenerator.cs: Move module creation to cctor to kill double
	checked locking and typeof locking.

2005-05-17  Lluis Sanchez Gual  <lluis@ximian.com>

	* CodeGenerator.cs: Don't generate debug info here.

2005-05-09  Lluis Sanchez Gual  <lluis@ximian.com>

	* ObjectWriter.cs:
	* CodeGenerator.cs: No need to add the class for inherited fields,
	since FieldInfo objects returned by the GetSerializableMembers
	method will already include the class name if needed.

2005-03-23  Lluis Sanchez Gual  <lluis@ximian.com>

	* BinaryCommon.cs: Added helper method for swapping bytes.
	* ObjectReader.cs:
	* ObjectWriter.cs: Implemented serialization of arrays of primitive
	types using Buffer.BlockCopy to create byffers of data that is written/
	read in a single call. It's much faster now.

2005-03-01  Lluis Sanchez Gual  <lluis@ximian.com>

	* BinaryCommon.cs: Found the meaning of two unknown binary elements.
	* CodeGenerator.cs: Derive generated classes from ClrTypeMetadata
	instead of TypeMetadata. Added writeTypes parameter to WriteTypeData().
	* ObjectWriter.cs: Use type and assembly names as keys for the type and
	assembly caches. This is needed since ISerializable types can provide
	fake type names (which are mapped to real types by a binder on
	deserialization).
	Implemented support for BinaryFormatter.TypeFormat.
	* BinaryFormatter.cs, MessageFormatter.cs: Implemented support for
	TypeFormat property.
	* ObjectReader.cs: Added support for objects serialized without
	member type information. This fixes bug #73114.
	If a binder return null, use the default way of loading the type.

2005-02-25  Lluis Sanchez Gual  <lluis@ximian.com>

	* ObjectReader.cs: In ReadArrayOfPrimitiveType, added a specific
	read loop for each type. It's much faster and avoids value boxings.

2005-01-10  Lluis Sanchez Gual  <lluis@ximian.com>

	* BinaryCommon.cs: IntPtr is not a primitive type in the serialization
	world. This fixes bug #70757.

2004-12-15  Lluis Sanchez Gual  <lluis@ximian.com>

	* ObjectReader.cs: Use GetField instead of GetMembers. Properties can't
	be serialized, so it makes no sense to use GetMembers.

2004-12-08  Zoltan Varga  <vargaz@freemail.hu>

	* CodeGenerator.cs: Call new DefineInternalDynamicAssembly method to prevent a race
	condition in the setting of the CorlibInternal flag.

2004-12-06  Zoltan Varga  <vargaz@freemail.hu>

	* CodeGenerator.cs: Mark the created assembly builder as internal.

2004-11-29  Lluis Sanchez Gual  <lluis@ximian.com>

	* CodeGenerator.cs: Addded EnumToUnderlying method to get the underlying
	type of an enum. This fixes bug #69753.

2004-07-02  Lluis Sanchez Gual  <lluis@ximian.com>

	* BinaryCommon.cs: Added CheckSerializable method.
	* ObjectWriter.cs: Check for type serializability even for members with
	  null values.
	
2004-05-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* ObjectWriter.cs: reduce contention in GetObjectData.

2004-05-14  Vladimir Vukicevic  <vladimir@pobox.com>

	* binary_serialization_format.htm: renamed filename from having
	  spaces to _'s (checked with lluis)

2004-05-13  Lluis Sanchez Gual  <lluis@ximian.com>

	* ObjectWriter.cs: Fixed and Simplified WriteGenericArray and 
	  WriteSingleDimensionArrayElements. This also fixes bug #58345.

2004-05-03  Lluis Sanchez Gual  <lluis@ximian.com>

	* MessageFormatter.cs: In the all-are-primitive case, serialize Args, 
	  not OutArgs.

2004-04-28  Lluis Sanchez Gual <lluis@ximian.com>

	* MessageFormatter.cs: Serialize Args, not OutArgs, like in MS.NET.

2004-04-26  Lluis Sanchez Gual <lluis@ximian.com>

	* ObjectReader.cs, ObjectWriter.cs: FIXME cleaning.

2004-04-20  Lluis Sanchez Gual <lluis@ximian.com>

	* CodeGenerator.cs, ObjectReader.cs, ObjectWriter.cs: Serialize decimals
	  as strings, like in MS.NET. This fixes bug #57186.

2004-02-23  Lluis Sanchez Gual <lluis@ximian.com>

	* BinaryCommon.cs: Added UseReflectionSerialization property.
	* CodeGenerator.cs, ObjectWriter.cs: When serializing the name of an 
	  inherited field, prefix the name with the class name. This fixes #54439.
	  Moved check for reflection serialization variable to BinaryCommon.
	
2004-02-17  Lluis Sanchez Gual <lluis@ximian.com>

	* ObjectWriter.cs: Factorized some serialization code in new classes, so it
	  is now possible to use fast IL generated classes that use direct access
	  to class fields instead of using reflection.
	* CodeGenerator.cs: New file. Has several methods used by ObjectWriter to 
	  generate serialization code.

2004-02-05  Lluis Sanchez Gual <lluis@ximian.com>

	* ObjectWriter.cs: Get the assembly of a member from the member's type, not
	  from the type of the value, because that is the type written in the
	  metadata section of the object.

2003-12-23  Lluis Sanchez Gual <lluis@ximian.com>

	* ObjectReader.cs: Field names can include the type name if the field
	  belongs to a base type. Take this into account.

2003-11-26  Lluis Sanchez Gual <lluis@ximian.com>

	* BinaryFormatter.cs: Added missing methods.

2003-11-20  Lluis Sanchez Gual <lluis@ximian.com>

	* BinaryFormatter.cs, MessageFormatter.cs, ObjectReader.cs: Added support
	  for TypeFilter property.

2003-11-16  Lluis Sanchez Gual <lluis@ximian.com>

	* BinaryFormatter.cs, MessageFormatter.cs, ObjectWriter.cs: 
	  Implemented support for AssemblyFormat property.

2003-11-12  Lluis Sanchez Gual <lluis@ximian.com>

	* ObjectReader.cs, ObjectWriter.cs: Changed some GetType calls to "is" checks.

2003-07-28  Duncan Mak  <duncan@ximian.com>

	* BinaryFormatter.cs (WriteBinaryHeader): changed from public to
	private.

2003-07-25  Lluis Sanchez Gual <lluis@ximian.com>

    * MessageFormatter.cs: WriteMethodCall(): It must write all parameters,
      including ref and out.

2003-07-24  Lluis Sanchez Gual <lluis@ximian.com>

    * ObjectReader.cs, ObjectWriter.cs, BinaryCommon.cs: Fixed bug #45970.

2003-07-17  Lluis Sanchez Gual <lluis@ximian.com>

    * ObjectReader.cs: Keep MemberInfo members in type's metadata object, so it is
      not necessary to query them for every object.
    * ObjectWriter.cs: If the value being serialized is a value type (not boxed)
      then there is no need to register it in the ObjectIDGenerator, because it is
      not possible to have two references to the same value type object.

2003-05-13  Lluis Sanchez Gual <lluis@ideary.com>

    * ObjectReader.cs: Changed signature of ReadObjectGraph, so now it returns the
      deserialized object and the headers.
    * MessageFormatter.cs: The result of the call to the HeaderHandler delegate is
      now interpreted as the uri of the target object. This seems to be MS.NET
      behavior.
	* BinaryFormatter.cs: Deserialize now calls the HeaderHandler delegate,
	  if provided.

2003-02-25  Lluis Sanchez Gual <lluis@ideary.com>

	* BinaryFormatter.cs: Implemented support for binders.
    * MessageFormatter.cs: Implemented support for binders.
    * ObjectReader.cs: Implemented support for binders.

2003-02-04  Lluis Sanchez Gual <lluis@ideary.com>

    * MessageFormatter.cs: Fixed bug in serialization of arguments.
    * ObjectReader.cs: Fixed bug causing array of structs to fail.

2003-02-11  Patrik Torstensson

    * ObjectReader.cs: Fixed root object bug causing object reader to return root object 
	  before fixup. Closes bug #37842.

2003-02-04  Lluis Sanchez Gual <lluis@ideary.com>

    * MessageFormatter.cs: Corrected some bugs that affected serialization of exceptions

2003-02-04  Lluis Sanchez Gual <lluis@ideary.com>

    * MessageFormatter.cs: Implemented serialization of message properties.

2003-01-24  Martin Baulig  <martin@ximian.com>

	* ObjectReader.cs (ReadNextObject): Call
	RaiseDeserializationEvent() on the ObjectManager when we're done
	reading the whole graph.

2003-01-24  Lluis Sanchez Gual <lluis@ideary.com>

    * ObjectWriter.cs, ObjectReader.cs: Added suport for headers. 
      Corrected encoding of primitive types. Corrected a bug about zero-length arrays. 
    * MessageFormatter.cs: Added. Implements serialization of messages.
    * BinaryFormatter.cs: Added serialization of messages.
    * BinaryCommon.cs: Added enum of codes of primitive types.

2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* ObjectWriter.cs: make the exception message more useful.

2003-01-16  Lluis Sanchez Gual <lluis@ideary.com>

    * BinaryFormatter.cs: implemented Serialize and Deserialize methods.
    * ObjectReader.cs: added.
    * ObjectWriter.cs: added.
    * BinaryCommon.cs. added.

2002-08-22  Nick Drochak  <ndrochak@gol.com>

	* BinaryArrayTypeEnum.cs: Removed Non-existent enum (must have been
	from beta days)

2002-08-18  Dick Porter  <dick@ximian.com>

	* BinaryFormatter.cs: Stubbed out
