2010-07-06  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs : add OnDeserializing/OnDeserialized support.

2010-06-23  Sebastien Pouliot  <sebastien@ximian.com>

	* XmlFormatterDeserializer.cs: Fix some issues in Moonlight when 
	some referenced assemblies cannot be found or loaded

2010-06-03  Sebastien Pouliot  <sebastien@ximian.com>

	* SerializationMap.cs: NET_2_1 needs cast too

2010-06-02  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs : fix PeerNodeAddress serialization regression.

2010-06-01  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs : for IXmlSerializable it uses CreateInstance()
	  instead of GetUninitializedObject(). Fixed bug #601785.

2010-05-31  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs, XmlFormatterSerializer.cs,
	  DataContractSerializer.cs :
	  support DataContractSerializer.PreserveObjectReferences. z:Ref
	  attributes are used not only for objects with IsReference=true.
	  Fixed bug #610036.

2010-05-31  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs, KnownTypeCollection.cs : contract namespace
	  should be still considered even if contract (local) name is null.
	  Fix crash for generic derived type of dictionary. Fixed the
	  primary (crasher) part of bug #610036.

2010-05-19  Atsushi Enomoto  <atsushi@ximian.com>

	* XmlFormatterDeserializer.cs : Array of something with non-default
	  namespace should be deserialized as well. Required for fixing
	  PeerResolvers ResolveResponseInfo serialization test case.

2010-05-19  Andreia Gaita  <avidigal@novell.com>

	* SerializationMap.cs: when deserializing, it is possible that the
	DataMemberInfo objects being matched against the xml don't have
	a set namespace because they were created from
	DefaultTypeMap.GetDataMembers(), so only use the namespace for
	comparison if it's not null (fixes part of #599667)

2010-04-28  Atsushi Enomoto  <atsushi@ximian.com>

	* KnownTypeCollection.cs : support DataContractNamespaceAttribute.
	  Fixed bug #599889.

2010-04-05  Atsushi Enomoto  <atsushi@ximian.com>

	* DataContractExporter-new.cs : do not expect contract attribute on
	  dictionary map. Non-contract type also uses this.

2010-04-05  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.XsdExporter.cs, DataContractExporter-new.cs :
	  handle schema export for SharedTypeMap.

2010-04-05  Atsushi Enomoto  <atsushi@ximian.com>

	* KnownTypeCollection.cs, SerializationMap.cs : split SharedTypeMap
	  .ctor() and initialization. Fixed infinite loop for some
	  [Serializable] types (such as Assembly).

2010-04-02  Atsushi Enomoto  <atsushi@ximian.com>

	* DataContractSerializer : implement IsStartObject().

2010-03-12  Atsushi Enomoto  <atsushi@ximian.com>

	* KnownTypeCollection.cs, SerializationMap.cs :
	  some refactoring to implement MessageDescription.XmlName.

2010-03-04  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs : return array instance if the runtime type is
	  an array (it used to return ArrayList without conveting to array).

2010-03-01  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.XsdExporter.cs, XsdDataContractExporter-new.cs:
	  refresh implementation to reflect the latest WCF impl.
	* SerializationMap.cs : make types partial.

2010-02-19  Atsushi Enomoto  <atsushi@ximian.com>

	* XsdDataContractImporter.cs : fix extension type name (and comment).

2010-02-19  Atsushi Enomoto  <atsushi@ximian.com>

	* XsdDataContractImporter.cs : added dictionary support.

2010-02-18  Atsushi Enomoto  <atsushi@ximian.com>

	* XsdDataContractImporter-new.cs, XsdDataContractImporter.cs :
	  replaced implementation.
	* ImportOptions.cs : add correct MonoTODOs.

2010-02-18  Atsushi Enomoto  <atsushi@ximian.com>

	* XsdDataContractImporter-new.cs : output [KnownType] to expose
	  base/derived type relationship.

2010-02-18  Atsushi Enomoto  <atsushi@ximian.com>

	* XsdDataContractImporter-new.cs : fix GenerateInternal.

2010-02-17  Atsushi Enomoto  <atsushi@ximian.com>

	* XsdDataContractImporter-new.cs : refresh implementation that is
	  not based on xml serialization. Not enabled yet.
	* KnownTypeCollection.cs : add cosmetic comment.

2010-02-09  Atsushi Enomoto  <atsushi@ximian.com>

	* XsdDataContractImporter.cs : add appropriate code namespaces
	  imported from xsd namespace.

2010-02-08  Atsushi Enomoto  <atsushi@ximian.com>

	* XsdDataContractImporter.cs : do not add primitive ArrayOfxxx types.

2010-02-08  Atsushi Enomoto  <atsushi@ximian.com>

	* XsdDataContractImporter.cs : some generated attributes are put
	  on enums too.

2010-01-25  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs : allow readonly field as data member.
	  Fixed bug #560155.

2010-01-08  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs, KnownTypeCollection.cs : differentiate
	  [DataContract(Namespace=null)] and [DataContract(Namespace="")].
	  Fixed bug #568763.

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

	* DataContractSerializer.cs: Add two missing methods for FX3.0 
	and SL2/SL3.

2009-10-22  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs : partly revert previous sorting fix in
	  Sep.28th. Do not sort and mix members in base and derived types.
	  Fixed bug #546238.

2009-10-21  Jb Evain  <jbevain@novell.com>

	* SerializationMap.cs, KnownTypeCollection.cs: avoid using LINQ
	on arrays as MonoTouch has issues with them.

2009-09-28  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs :
	  There were some places that ignored possible whitespace nodes.
	  Fixed sorting of ordered members so that it does not give
	  incomplete sorting among base/derived types. (should fix #539563.)
	  Give xml error details in some places.

2009-09-28  Atsushi Enomoto  <atsushi@ximian.com>

	* KnownTypeCollection.cs : (the previous one didn't fix #539563.)
	  Consider attempts to register the same collection type as it did
	  before.

2009-09-28  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs, KnownTypeCollection.cs : nested use of type
	  in its members resulted in infinite loop. This hopefully fixes
	  bug #539563.

2009-09-07  Atsushi Enomoto  <atsushi@ximian.com>

	* IgnoreDataMemberAttribute.cs : add missing type.
	* SerializationMap.cs : support above.

2009-07-23  Sebastien Pouliot  <sebastien@ximian.com>

	* SerializationMap.cs : Ensure Dictionary is still deserialized
	correctly (wrt previous change). Fix moonlight isolated storage
	settings.

2009-07-22  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs : for empty element, do not try to consume
	  children. Fixed bug #524086.
	  For enum, it is always error when the enum is not flags, and
	  is always default value for flags.

2009-07-22  Atsushi Enomoto  <atsushi@ximian.com>

	* XmlFormatterDeserializer.cs : when reading empty primitive value,
	  make sure to consume the reader. Fixed bug #524083.

2009-07-22  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs : call MoveToContent() before examining
	  the reader node type.

2009-07-22  Atsushi Enomoto  <atsushi@ximian.com>

	* KnownTypeCollection.cs : Find KnownTypeAttributes in base types
	  too. Patch by Rolf Bjarne Kvinge. Fixed bug #524088.

2009-07-21  Atsushi Enomoto  <atsushi@ximian.com>

	* DataContractSerializer.cs : it does not write dictionary string
	  when it was not created with it.

2009-07-07  Atsushi Enomoto  <atsushi@ximian.com>

	* XmlFormatterDeserializer.cs, SerializationMap.cs : IXmlSerializable
	  were not deserialized correctly as it has mismatch on wrapper
	  element. This fixes PeerNodeAddress.EndpointAddress deserialization.

2009-06-26  Atsushi Enomoto  <atsushi@ximian.com>

	* XmlFormatterDeserializer.cs : verifyObjectName rather blocked
	  correct names provided as the root names.

2009-06-01  Atsushi Enomoto  <atsushi@ximian.com>

	* XmlFormatterSerializer.cs, KnownTypeCollection.cs : collection
	  types does not emit xsi:type when the actual type is different
	  from the nominal serilaization type. To achieve this, introduced
	  the idea of the actual serialization type.

2009-05-28  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs : for default / shared type map, members are
	  serialized in alphabetical order.

2009-05-28  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs : generic interface search has to be more
	  complicated. Give kind error message on setting deserialized value.

2009-05-28  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs: collection interface cannot be instantiated,
	  so create List<T> (generic) or ArrayList (non-generic) instead.

2009-05-25  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs, XmlFormatterSerializer.cs :
	  collection types should not output xsi:type e.g. IList<T> should
	  not exposed xsi:type as xsi:type=List`1.

2009-05-18  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs, XmlFormatterDeserializer.cs,
	  KnownTypeCollection.cs : Support for array of some primitive types
	  in the deserializer was missing, which resulted in peer resolver
	  RegisterInfo deserialization failure.

2009-05-18  Atsushi Enomoto  <atsushi@ximian.com>

	* XmlFormatterDeserializer.cs : remove type lookup optimization
	  (since .NET 3.5 introduced system types with DC) and fix
	  serialization of system types (ISerializable types were not
	  resolved in previous code).

2009-05-18  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs : it was only about 2.1. Fix build.

2009-05-18  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs : It is not possible to get schema without
	  IXmlSerializable instance.

2009-05-15  Atsushi Enomoto  <atsushi@ximian.com>

	* DataContractSerializer.cs : write dictionary string directly for
	  root name/ns (root only, so far).

2009-05-14  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs: interface collection failed to serialize as
	  it was calling inappropriate GetInterfaceMap().

2009-04-01  Atsushi Enomoto  <atsushi@ximian.com>

	* XmlFormatterDeserializer.cs : more hack to handle empty
	  element nicely.

2009-03-24  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs, XmlFormatterDeserializer.cs:
	  empty collection deserialization resulted in extra
	  consumption of the next xml node.

2009-03-19  Atsushi Enomoto  <atsushi@ximian.com>

	* KnownTypeCollection.cs, XmlFormatterDeserializer.cs :
	  to infer type from xml qname, consider DataContractAttribute
	  names.

2009-03-12  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs : make generic type parsing sloppy.
	  because we don't know some cryptic hash algorithm:
	  http://jeffbarnes.net/portal/blogs/jeff_barnes/archive/2007/05/10/wcf-serialization-and-generics.aspx

2009-03-12  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs, KnownTypeCollection.cs :
	  support CollectionDataContract-based dictionary too.

2009-03-12  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs, KnownTypeCollection.cs :
	  added support for dictionary serialization (not for
	  CollectionDataContract-attributed dictionary yet).

2009-03-12  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs : cosmetic !NET_2_1 fix (no effect).
	* KnownTypeCollection.cs : use ICollection<> and IList instead of
	  IEnumerable. This causes confusion for dictionary.

2009-03-11  Atsushi Enomoto  <atsushi@ximian.com>

	* XmlFormatterSerializer.cs, XmlObjectSerializer.cs,
	  XmlFormatterDeserializer.cs, KnownTypeCollection.cs :
	  add more xsi:type to cover collection items.

2009-03-11  Atsushi Enomoto  <atsushi@ximian.com>

	* KnownTypeCollection.cs : fix generic argument names in xml.
	  They should use xmlized names instead of raw type name.
	* XmlFormatterDeserializer.cs : remove extra Console.WriteLine.

2009-03-11  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs : eliminate whitespace misuses.

2009-03-11  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs : actually it could just be ICollection<T>.

2009-03-11  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs : implemented generic IList deserialization.

2009-03-10  Atsushi Enomoto  <atsushi@ximian.com>

	* KnownTypeCollection.cs : fix for generic serialization.

2009-02-27  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs : look for unordered members first, in
	  different iteration. Got SL OpenStreetMap working.

2009-02-13  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs : remove use of non-2.1 CreateInstance().
	* XmlFormatterDeserializer.cs : allow empty element.

2009-02-13  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs, DataContractSerializer.cs,
	  KnownTypeCollection.cs : now .NET 3.5/SP1 supports non-contract
	  type serialization.

2009-02-13  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs, KnownTypeCollection.cs : couple of refactoring
	  to simplify code base and handle CollectionDataContract namespace.

2009-02-13  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs : oops, remove debug lines.

2009-02-13  Atsushi Enomoto  <atsushi@ximian.com>

	* DataContractSerializer.cs : remove extra writexmlns.
	* SerializationMap.cs : allow DataMember of collection contract type
	  as read-only.
	* KnownTypeCollection.cs : it was not iterating interfaces to find
	  IEnumerable<T> correctly.

2009-02-03  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs : a bit more detailed error message.

2009-01-23  Atsushi Enomoto  <atsushi@ximian.com>

	* KnownTypeCollection.cs : similar fix to the previous one,
	  on uint16.

2009-01-22  Alan McGovern  <amcgovern@novell.com>

	* KnownTypeCollection.cs : The byte overload doesn't exist in
	Silverlight, so cast the byte to an int instead.

2008-11-23  Atsushi Enomoto  <atsushi@ximian.com>

	* DataContractAttribute.cs : remove MonoTODO.

2008-11-23  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs, XmlFormatterSerializer.cs,
	  XmlFormatterDeserializer.cs, DataContractAttribute.cs,
	  CollectionDataContractAttribute.cs, KnownTypeCollection.cs :
	  support IsReference (new in 3.5 SP1).

2008-11-23  Atsushi Enomoto  <atsushi@ximian.com>

	* DataContractSerializer.cs : remove extra type validity check.

2008-11-23  Atsushi Enomoto  <atsushi@ximian.com>

	* XmlFormatterSerializer.cs : one object could not be serialized
	  twice in non-circular situation.

2008-09-09  Atsushi Enomoto  <atsushi@ximian.com>
			Jb Evain  <jbevain@novell.com>

	* IDataContractSurrogater.cs, SerializationMap.cs:
	add support to build on the net_2_1 profile.

2008-06-19  Noam Lampert <noaml@mainsoft.com>
	
	* KnownTypeCollection.cs: Support anyUri type

2008-06-05  Noam Lampert <noaml@mainsoft.com>
	
	* KnownTypeCollection.cs: Support XmlRoot attribute

2008-06-01  Noam Lampert <noaml@mainsoft.com>
	
	* KnownTypeCollection.cs: Implement byte[] serialization.

2008-05-19  Noam Lampert <noaml@mainsoft.com>
	
	* KnownTypeCollection.cs: Implement char serialization.
	   
2008-05-19  Noam Lampert <noaml@mainsoft.com>
	
	* KnownTypeCollection.cs, XmlFormatterDeserializer.cs: Imporve support for 
	   Nullable types in contracts.
	   
2008-04-29  Eyal Alaluf <eyala@mainsoft.com>

	* KnownTypeCollection.cs: Fixed a typo in long conversion.

2008-04-17  Eyal Alaluf <eyala@mainsoft.com>

	* SerializationMap.cs: Implement partially collections deserialization.
	  Supports arrays and types derived from IList. Needs support for calling
	  'Add' method and for dictionaries.
	* SerializationMap.cs XmlFormatterSerializer.cs DataContractSerializer.cs:
	  Serialize namespaces for base members according to base class namespace.

2008-04-14  Eyal Alaluf <eyala@mainsoft.com>

	* SerializationMap.cs: Use FormatterServices.GetUninitializedObject instead
	  of Activator.CreateInstance.

2008-04-10  Eyal Alaluf <eyala@mainsoft.com>

	* DataContractSerializer.cs: Write and register the current type namespace
	  within the writer.
	* XmlObjectSerializer.cs: ReadObject verifies by default.
	* XmlFormatterSerializer.cs: Write and register XML namespaces.
	* XmlFormatterDeserializer.cs: Refactored so Deserialize instance method can
	  be used from SerializationMap deserialization logic recursively.
	* SerializationMap.cs: Reimplemented main deserialization logic. Now it
	  handles better missing entries, consumes the XmlReader until the end
	  element and handles XML namespaces correctly.
	  Enabled checks for required fields.

2008-02-27  Eyal Alaluf <eyala@mainsoft.com>

	* SerializationMap.cs: Fix namespace logic at least in simple case where
	  there are several unknown elements before the current element.
	* ContractNamespaceAttribute.cs: The ClrNamespace is not set by the ctor.
	* XmlObjectSerializer.cs: Dispose the XmlWriter created in WriteObject
	  to a stream.
	* DataMemberAttribute.cs: Added the EmitDefaultValue property.
	* XsdDataContractImporter.cs: Handle null arguments in Import methods.
	* KnownTypeCollection.cs: Use XmlConvert.ToDateTime with roundtrip style.

2007-12-05  Atsushi Enomoto  <atsushi@ximian.com>

	* XmlObjectSerializer.cs : some methods became virtual (in Redbits).
	* DataContractSerializer.cs : added some overriden methods in Redbits.
	  knownTypes can be null in .ctor().

2007-08-17  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs : for void it cannot be instantiated. Return
	  null instead.

2007-08-17  Atsushi Enomoto  <atsushi@ximian.com>

	* XmlFormatterDeserializer.cs DataContractSerializer.cs :
	  uhoh, the semantic of bool parameter in ReadObject() has
	  changed in the RTM. Implemented it as verifyObjectName.

2007-03-27  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs
	  XmlFormatterSerializer.cs
	  DataContractSerializer.cs :
	  now it needs some mess to handle serialization namespaces.
	  Collection items are serialized in its own xml namespace. Others,
	  (including the collection member itself) is serialized in its
	  parent xml namespace. Collection items are serialized with its
	  wrapping element.
	* XsdDataContractImporter.cs : use constant.

2007-03-26  Atsushi Enomoto  <atsushi@ximian.com>

	* KnownTypeCollection.cs : added support for Guid serialization.

2006-10-20  Atsushi Enomoto  <atsushi@ximian.com>

	* KnownTypeCollection.cs : (RemoveItem) don't remove items while 
	  iterating.

2006-09-06  Ankit Jain  <jankit@novell.com>

	* SerializationMap.cs (SerializationMap.GetSequence): Set minOccurs = 0

2006-09-05  Ankit Jain  <jankit@novell.com>

	* XsdDataContractExporter.cs (XsdDataContractExporter.MSTypesSchema):
	Load resource mstypes.schema
	(XsdDataContractExporter.Schemas): Add MSTypesSchema by default.

2006-09-05  Ankit Jain  <jankit@novell.com>

	* SerializationMap.cs (SerializationMap.AddImport): New.
	(SerializationMap.GetSequence): Use AddImport.

2006-09-04  Ankit Jain  <jankit@novell.com>

	* SerializationMap.cs (SerializationMap.GetSchemaSet): Remove.
	(SerializationMap.GetSchemaType):
	(SerializationMap.GetSequence):
	(SerializationMap.GetSchema): Change XmlSchemas param to XmlSchemaSet.
	Call XmlSchemaSet.Reprocess whenever an existing schema is modified.
	* XsdDataContractExporter.cs (XsdDataContractExporter.Export): Update to
	changes in SerializationMap.
	(XsdDataContractExporter.CanExport): Implement.
	(XsdDataContractExporter.GetSchemaType): Implement.
	(XsdDataContractExporter.GetSchemaTypeName): Implement.
	(XsdDataContractExporter.KnownTypes): New.
	(XsdDataContractExporter.GeneratedTypes): New.

2006-09-01  Ankit Jain  <jankit@novell.com>

	* SerializationMap.cs (SerializationMap.GetSchemaSet): New.
	(SerializationMap.IsPrimitive): New.
	(SerializationMap.GetSchemaType): New.
	(SerializationMap.GetSequence): New.
	(SerializationMap.GetMembers): New.
	(SerializationMap.GetSchemaElement): New.
	(SerializationMap.GetSchema): New.
	(SerializationMap.GetQualifiedName): New.
	New methods for exporting schema for the type.

	(SharedContractMap.ctor): Move code for building Members list to ..
	(SharedContractMap.GetMembers): .. here.

	(CollectionTypeMap.Serialize): Mark 'override'.
	(CollectionTypeMap.GetMembers): 'override' and throw
	NotImplementedException.
	(CollectionTypeMap.GetSchemaType): Implement.

	(SharedTypeMap..ctor): Move code to ..
	(SharedTypeMap.GetMembers): .. here.
	(EnumMap.GetSchemaType): Implement.

	* XsdDataContractExporter.cs (XsdDataContractExporter.Export):
	Implement.
	* KnownTypeCollection.cs (KnownTypeCollection.GetCollectionQName): Use
	GetQName instead of GetXmlName. Set Namespace for collections of
	primitive types to MSArraysNamespace

2006-08-31  Ankit Jain  <jankit@novell.com>

	* SerializationMap.cs (EnumMap): New. For de/serializing enums.
	(EnumMemberInfo): New.
	(SerializationMap.DeserializeContent): Made protected virtual from private.
	* DataContractSerializer.cs (WriteStartObject):
	Ensure that "i:type" is not emitted for enums.
	* KnownTypeCollection.cs (GetPrimitiveTypeName): Don't treat enum as a
	primitive type.
	(GetQName): Likewise. Use GetEnumQName for enums.
	(GetEnumQName): New.
	(IsPrimitiveNotEnum): New.
	(TryRegister): Add support for enums.
	(RegisterEnum): New.

2006-08-14  Atsushi Enomoto  <atsushi@ximian.com>

	* XmlFormatterSerializer.cs : (contd from my previous change)
	  ... and don't complain at WriteObject(). It is somehow required
	  in S.SM.D.WSTrustContract (soon to be committed).

2006-07-27  Ankit Jain  <jankit@novell.com>

	* XsdDataContractImporter.cs (Compile): Remove, thanks to eno
	XmlSchemaSet.Compile () works now.
	Update to directly use XmlSchemaSet.Compile ()

2006-07-27  Ankit Jain  <jankit@novell.com>

	* XsdDataContractImporter.cs (ImportInternal): New.
	Update various overloads of Import to use this.
	(ImportFromTypeMapping): New. Emits code for a DataContract from a
	XmlTypeMapping. Code is duplicate of
	ServiceContractGenerator.ExportDataContract .
	(GetNamespace): New. Duplicate like above.
	(Compile): New. Temporary hack, will XmlSchemaSet.Compile is not
	working.

2006-07-18  Atsushi Enomoto  <atsushi@ximian.com>

	* XmlFormatterSerializer.cs, KnownTypeCollection.cs :
	  don't raise an error at DataContractSerializer..ctor(). Raise
	  InvalidDataContractException on WriteObject().

2006-07-12  Ankit Jain  <jankit@novell.com>

	* SerializationMap.cs (XmlSerializableMap): New. Map for classes which
	implement IXmlSerializable interface.
	* KnownTypeCollection.cs (KnownTypeCollection.GetQName): Add support for
	types which implement IXmlSerializable interface. Change the order in
	which DataContractAttribute/IXmlSerializable/SerializableAttribute get
	selected.
	(KnownTypeCollection.TryRegister): Change the order like above.
	(KnownTypeCollection.RegisterIXmlSerializable): New.

2006-07-04  Atsushi Enomoto  <atsushi@ximian.com>

	* XsdDataContractExporter.cs, XmlObjectSerializer.cs,
	  InvalidDataContractException.cs : some June CTP updates.

2006-07-04  Atsushi Enomoto  <atsushi@ximian.com>

	* IDataContractSurrogate.cs, ExportOptions.cs,
	  DataContractSerializer.cs, KnownTypeCollection.cs :
	  June CTP updates.

2006-05-09  Atsushi Enomoto  <atsushi@ximian.com>

	* DataContractSerializer.cs : null knownTypes argument is allowed.
	* KnownTypeCollection.cs : Type.Namespace could be null.

2006-05-09  Atsushi Enomoto  <atsushi@ximian.com>

	* KnownTypeCollection.cs : for nested classes, treat localName of
	  the QName as "Parent.Child", not "Child".
	  Don't encode name here (to pass ".").

2006-05-09  Atsushi Enomoto  <atsushi@ximian.com>

	* DataContractSerializer.cs :
	  Added maxObjectsInGraph range check.
	  interface type has BaseType as null, so end base type check when
	  it is null (I don't think this check is required btw).

2006-04-05  Atsushi Enomoto  <atsushi@ximian.com>

	* DataContractSerializer.cs : xmlns:xsi is not written when the
	  target type is string.

2006-03-22  Ankit Jain  <jankit@novell.com>

	* SerializationMap.cs (CheckDataContractEqual): Remove.
	(Deserialize): Allows expected type to be a derived one from actual
	type.
	(DeserializeInternal): Handle DataMember of type 'object'.
	* XmlFormatterSerializer.cs (SerializeNonPrimitive): Serialize types not
	already known.
	* DataContractSerializer.cs (.ctor): Use KnownTypeCollection.GetQName
	instead of doing it manually.
	(PopulateTypes): Change return type from KnownTypeCollection to void.
	Scan the base types to ensure that all have DataContract or Serializable
	attributes.
	Add all (including inherited) KnownTypeAttribute values to the
	collection.

2006-03-18  Ankit Jain  <jankit@novell.com>

	* SerializationMap.cs (SerializationMap.GetEmptyInstance): Rename to ..
	(SerializationMap.GetInstance): .. this. Gets the instance or null if nil=true.
	(SerializationMap.DeserializeInternal): New. Renamed from .. 
	(SerializationMap.Deserialize): .. this. Check DataContract equivalence, and use new
	DeserializeInternal for rest of the work.
	(DeserializeContent): Cleanup and handle various "null" cases.
	* XmlFormatterSerializer.cs (Write_i_type): New. Write i:type=".."
	(SerializeNonPrimitive): Update to use Write_i_type.
	* DataContractSerializer.cs (WriteStartObject): Add rootType to known_types.

2006-03-16  Ankit Jain  <jankit@novell.com>

	* SerializationMap.cs (SerializationMap.Deserialize): Use NameTable.Get
	before reader.LookupNamespace.
	(DataMemberInfo.Compare): Use String.CompareOrdinal instead of
	String.Compare.

2006-03-16  Ankit Jain  <jankit@novell.com>

	* SerializationMap.cs (SerializationMap.GetEmptyInstance): New.
	(SerializationMap.Deserialize): Refactor, handle primitive types and nils.
	(SerializationMap.DeserializeContent): Handle nils and nested DataContracts.
	(SharedContractMap.ctor): Include inherited properties and fields, in
	the correct order.

2006-03-15  Ankit Jain  <jankit@novell.com>

	* KnownTypeCollection.cs (IsPrimitiveType): New.
	* SerializationMap.cs (Deserialize): Handle primitive types.

2006-03-15  Ankit Jain  <jankit@novell.com>

	* DataContractSerializer.cs (WriteObjectContent): Handle null.
	(WriteStartObject): Rewritten.
	* KnownTypeCollection.cs (GetQName): New. Return QName for a given type.	
	(GetContractQName):
	(GetSerializableQName):
	(GetCollectionQName): New.
	(RegisterContract):
	(RegisterSerializable):
	(RegisterCollection): Update to use new Get* methods.
	* SerializationMap.cs (CheckDataContractEqual): New.
	(Deserialize): Split into this and ..
	(DeserializeContent): .. this.
	* XmlDictionaryWriter.cs (CreateTextWriter): Use UTF8Encoding.

2006-03-09  Atsushi Enomoto  <atsushi@ximian.com>

	* DataContractSerializer.cs : xmlns output should be done at
	  WriteStartObject().

2006-03-08  Ankit Jain  <jankit@novell.com>

	* DataContractSerializer.cs (.ctor): Use name & namespace specified (if any) 
	with the DataContractAttribute for non-primitive types.
	(DataContractSerializer.WriteStartObject): DataContractAttribute.Name
	cannot be "".

2006-03-03  Atsushi Enomoto  <atsushi@ximian.com>

	* DataContractSerializer.cs : Handle primitive type name rather than
	  raw type name in constructors that don't receive root QName.
	  In case the actual graph is not of root type, write xsi:type.

2006-03-02  Atsushi Enomoto  <atsushi@ximian.com>

	* KnownTypeCollection.cs : default namespace contains common MS base
	  URI fragment.
	* XmlObjectSerializer.cs : added internal common utility field.
	* DataContractSerializer.cs : Fixed constructors to fill fields and
	  make it work.
	* NetDataContractSerializer.cs : just leave it unimplemented until
	  we find how it works. It looks different from what
	  DataContractSerializer does.

2006-01-17  Atsushi Enomoto  <atsushi@ximian.com>

	* XmlFormatter.cs : extra namespaces are not written in Dec.CTP.

2005-11-28  Atsushi Enomoto  <atsushi@ximian.com>

	* KnownTypeCollection.cs : override.

2005-11-02  Atsushi Enomoto  <atsushi@ximian.com>

	* SerializationMap.cs, XmlFormatterSerializer.cs, XmlFormatter.cs
	  XmlFormatterDeserializer.cs, KnownTypeCollection.cs :
	  several changes. Partial support for collection serialization.
	  SerializationMap now contains its own Deserialize()/Serialize()
	  methods.

2005-10-20  Atsushi Enomoto  <atsushi@ximian.com>

	* XmlFormatterDeserializer.cs : new file.
	* SerializationMap.cs, XmlFormatter.cs, KnownTypeCollection.cs :
	  several changes for pretty primitive Deserialize() implementation.

2005-10-07  Atsushi Enomoto  <atsushi@ximian.com>

	Added hacky serialization feature. Actually it should be rewritten to
	be based on IDataContractSurrogate.
	* SerializationMap.cs, XmlFormatterSerializer.cs :
	  new files for Serialize() implementation.
	* KnownTypeCollection.cs : use serialization maps to check contracts.
	* XmlFormatter.cs : implemented hacky Serialize().
	* DataMemberAttribute.cs : default Order is -1.
	* DataContractAttribute.cs : added tiny comment.

2005-10-03  Atsushi Enomoto  <atsushi@ximian.com>

	* XmlFormatter.cs : Added implementation switch between
	  BinaryFormatter and internal DataContractFormatter.
	* XmlSerializableServices.cs : WriteNodes() impl.

2005-10-03  Atsushi Enomoto  <atsushi@ximian.com>

	* XmlSerializableServices.cs : ReadNodes() impl.

2005-09-28  Atsushi Enomoto  <atsushi@ximian.com>

	* KnownTypeAttribute.cs : fixed attribute usage.

2005-09-22  Atsushi Enomoto  <atsushi@ximian.com>

	* IDataContractSurrogate.cs, ContractNamespaceAttribute.cs,
	  XsdDataContractExporter.cs, KnownTypeAttribute.cs,
	  SerializationMode.cs, XmlFormatter.cs, DataMemberAttribute.cs,
	  ImportOptions.cs, UnknownSerializationData.cs,
	  SerializationFactoryMethodAttribute.cs, XmlSerializableServices.cs,
	  DataContractAttribute.cs, ExportOptions.cs,
	  InvalidDataContractException.cs, IUnknownSerializationData.cs,
	  CollectionDataContractAttribute.cs, XsdDataContractImporter.cs,
	  KnownTypeCollection.cs :
	  #if NET_2_0. coding style was updated.

2005-09-22  Atsushi Enomoto  <atsushi@ximian.com>

	* CollectionDataContractAttribute.cs
	  ContractNamespaceAttribute.cs
	  DataContractAttribute.cs
	  DataMemberAttribute.cs
	  ExportOptions.cs
	  IDataContractSurrogate.cs
	  InvalidDataContractException.cs
	  IUnknownSerializationData.cs
	  ImportOptions.cs
	  KnownTypeAttribute.cs
	  KnownTypeCollection.cs
	  SerializationFactoryMethodAttribute.cs
	  SerializationMode.cs
	  UnknownSerializationData.cs
	  XmlFormatter.cs
	  XmlSerializableServices.cs
	  XsdDataContractExporter.cs
	  XsdDataContractImporter.cs : new files.

