1 2010-02-19 Atsushi Enomoto <atsushi@ximian.com>
3 * XsdDataContractImporter.cs : fix extension type name (and comment).
5 2010-02-19 Atsushi Enomoto <atsushi@ximian.com>
7 * XsdDataContractImporter.cs : added dictionary support.
9 2010-02-18 Atsushi Enomoto <atsushi@ximian.com>
11 * XsdDataContractImporter-new.cs, XsdDataContractImporter.cs :
12 replaced implementation.
13 * ImportOptions.cs : add correct MonoTODOs.
15 2010-02-18 Atsushi Enomoto <atsushi@ximian.com>
17 * XsdDataContractImporter-new.cs : output [KnownType] to expose
18 base/derived type relationship.
20 2010-02-18 Atsushi Enomoto <atsushi@ximian.com>
22 * XsdDataContractImporter-new.cs : fix GenerateInternal.
24 2010-02-17 Atsushi Enomoto <atsushi@ximian.com>
26 * XsdDataContractImporter-new.cs : refresh implementation that is
27 not based on xml serialization. Not enabled yet.
28 * KnownTypeCollection.cs : add cosmetic comment.
30 2010-02-09 Atsushi Enomoto <atsushi@ximian.com>
32 * XsdDataContractImporter.cs : add appropriate code namespaces
33 imported from xsd namespace.
35 2010-02-08 Atsushi Enomoto <atsushi@ximian.com>
37 * XsdDataContractImporter.cs : do not add primitive ArrayOfxxx types.
39 2010-02-08 Atsushi Enomoto <atsushi@ximian.com>
41 * XsdDataContractImporter.cs : some generated attributes are put
44 2010-01-25 Atsushi Enomoto <atsushi@ximian.com>
46 * SerializationMap.cs : allow readonly field as data member.
49 2010-01-08 Atsushi Enomoto <atsushi@ximian.com>
51 * SerializationMap.cs, KnownTypeCollection.cs : differentiate
52 [DataContract(Namespace=null)] and [DataContract(Namespace="")].
55 2009-12-01 Sebastien Pouliot <sebastien@ximian.com>
57 * DataContractSerializer.cs: Add two missing methods for FX3.0
60 2009-10-22 Atsushi Enomoto <atsushi@ximian.com>
62 * SerializationMap.cs : partly revert previous sorting fix in
63 Sep.28th. Do not sort and mix members in base and derived types.
66 2009-10-21 Jb Evain <jbevain@novell.com>
68 * SerializationMap.cs, KnownTypeCollection.cs: avoid using LINQ
69 on arrays as MonoTouch has issues with them.
71 2009-09-28 Atsushi Enomoto <atsushi@ximian.com>
73 * SerializationMap.cs :
74 There were some places that ignored possible whitespace nodes.
75 Fixed sorting of ordered members so that it does not give
76 incomplete sorting among base/derived types. (should fix #539563.)
77 Give xml error details in some places.
79 2009-09-28 Atsushi Enomoto <atsushi@ximian.com>
81 * KnownTypeCollection.cs : (the previous one didn't fix #539563.)
82 Consider attempts to register the same collection type as it did
85 2009-09-28 Atsushi Enomoto <atsushi@ximian.com>
87 * SerializationMap.cs, KnownTypeCollection.cs : nested use of type
88 in its members resulted in infinite loop. This hopefully fixes
91 2009-09-07 Atsushi Enomoto <atsushi@ximian.com>
93 * IgnoreDataMemberAttribute.cs : add missing type.
94 * SerializationMap.cs : support above.
96 2009-07-23 Sebastien Pouliot <sebastien@ximian.com>
98 * SerializationMap.cs : Ensure Dictionary is still deserialized
99 correctly (wrt previous change). Fix moonlight isolated storage
102 2009-07-22 Atsushi Enomoto <atsushi@ximian.com>
104 * SerializationMap.cs : for empty element, do not try to consume
105 children. Fixed bug #524086.
106 For enum, it is always error when the enum is not flags, and
107 is always default value for flags.
109 2009-07-22 Atsushi Enomoto <atsushi@ximian.com>
111 * XmlFormatterDeserializer.cs : when reading empty primitive value,
112 make sure to consume the reader. Fixed bug #524083.
114 2009-07-22 Atsushi Enomoto <atsushi@ximian.com>
116 * SerializationMap.cs : call MoveToContent() before examining
117 the reader node type.
119 2009-07-22 Atsushi Enomoto <atsushi@ximian.com>
121 * KnownTypeCollection.cs : Find KnownTypeAttributes in base types
122 too. Patch by Rolf Bjarne Kvinge. Fixed bug #524088.
124 2009-07-21 Atsushi Enomoto <atsushi@ximian.com>
126 * DataContractSerializer.cs : it does not write dictionary string
127 when it was not created with it.
129 2009-07-07 Atsushi Enomoto <atsushi@ximian.com>
131 * XmlFormatterDeserializer.cs, SerializationMap.cs : IXmlSerializable
132 were not deserialized correctly as it has mismatch on wrapper
133 element. This fixes PeerNodeAddress.EndpointAddress deserialization.
135 2009-06-26 Atsushi Enomoto <atsushi@ximian.com>
137 * XmlFormatterDeserializer.cs : verifyObjectName rather blocked
138 correct names provided as the root names.
140 2009-06-01 Atsushi Enomoto <atsushi@ximian.com>
142 * XmlFormatterSerializer.cs, KnownTypeCollection.cs : collection
143 types does not emit xsi:type when the actual type is different
144 from the nominal serilaization type. To achieve this, introduced
145 the idea of the actual serialization type.
147 2009-05-28 Atsushi Enomoto <atsushi@ximian.com>
149 * SerializationMap.cs : for default / shared type map, members are
150 serialized in alphabetical order.
152 2009-05-28 Atsushi Enomoto <atsushi@ximian.com>
154 * SerializationMap.cs : generic interface search has to be more
155 complicated. Give kind error message on setting deserialized value.
157 2009-05-28 Atsushi Enomoto <atsushi@ximian.com>
159 * SerializationMap.cs: collection interface cannot be instantiated,
160 so create List<T> (generic) or ArrayList (non-generic) instead.
162 2009-05-25 Atsushi Enomoto <atsushi@ximian.com>
164 * SerializationMap.cs, XmlFormatterSerializer.cs :
165 collection types should not output xsi:type e.g. IList<T> should
166 not exposed xsi:type as xsi:type=List`1.
168 2009-05-18 Atsushi Enomoto <atsushi@ximian.com>
170 * SerializationMap.cs, XmlFormatterDeserializer.cs,
171 KnownTypeCollection.cs : Support for array of some primitive types
172 in the deserializer was missing, which resulted in peer resolver
173 RegisterInfo deserialization failure.
175 2009-05-18 Atsushi Enomoto <atsushi@ximian.com>
177 * XmlFormatterDeserializer.cs : remove type lookup optimization
178 (since .NET 3.5 introduced system types with DC) and fix
179 serialization of system types (ISerializable types were not
180 resolved in previous code).
182 2009-05-18 Atsushi Enomoto <atsushi@ximian.com>
184 * SerializationMap.cs : it was only about 2.1. Fix build.
186 2009-05-18 Atsushi Enomoto <atsushi@ximian.com>
188 * SerializationMap.cs : It is not possible to get schema without
189 IXmlSerializable instance.
191 2009-05-15 Atsushi Enomoto <atsushi@ximian.com>
193 * DataContractSerializer.cs : write dictionary string directly for
194 root name/ns (root only, so far).
196 2009-05-14 Atsushi Enomoto <atsushi@ximian.com>
198 * SerializationMap.cs: interface collection failed to serialize as
199 it was calling inappropriate GetInterfaceMap().
201 2009-04-01 Atsushi Enomoto <atsushi@ximian.com>
203 * XmlFormatterDeserializer.cs : more hack to handle empty
206 2009-03-24 Atsushi Enomoto <atsushi@ximian.com>
208 * SerializationMap.cs, XmlFormatterDeserializer.cs:
209 empty collection deserialization resulted in extra
210 consumption of the next xml node.
212 2009-03-19 Atsushi Enomoto <atsushi@ximian.com>
214 * KnownTypeCollection.cs, XmlFormatterDeserializer.cs :
215 to infer type from xml qname, consider DataContractAttribute
218 2009-03-12 Atsushi Enomoto <atsushi@ximian.com>
220 * SerializationMap.cs : make generic type parsing sloppy.
221 because we don't know some cryptic hash algorithm:
222 http://jeffbarnes.net/portal/blogs/jeff_barnes/archive/2007/05/10/wcf-serialization-and-generics.aspx
224 2009-03-12 Atsushi Enomoto <atsushi@ximian.com>
226 * SerializationMap.cs, KnownTypeCollection.cs :
227 support CollectionDataContract-based dictionary too.
229 2009-03-12 Atsushi Enomoto <atsushi@ximian.com>
231 * SerializationMap.cs, KnownTypeCollection.cs :
232 added support for dictionary serialization (not for
233 CollectionDataContract-attributed dictionary yet).
235 2009-03-12 Atsushi Enomoto <atsushi@ximian.com>
237 * SerializationMap.cs : cosmetic !NET_2_1 fix (no effect).
238 * KnownTypeCollection.cs : use ICollection<> and IList instead of
239 IEnumerable. This causes confusion for dictionary.
241 2009-03-11 Atsushi Enomoto <atsushi@ximian.com>
243 * XmlFormatterSerializer.cs, XmlObjectSerializer.cs,
244 XmlFormatterDeserializer.cs, KnownTypeCollection.cs :
245 add more xsi:type to cover collection items.
247 2009-03-11 Atsushi Enomoto <atsushi@ximian.com>
249 * KnownTypeCollection.cs : fix generic argument names in xml.
250 They should use xmlized names instead of raw type name.
251 * XmlFormatterDeserializer.cs : remove extra Console.WriteLine.
253 2009-03-11 Atsushi Enomoto <atsushi@ximian.com>
255 * SerializationMap.cs : eliminate whitespace misuses.
257 2009-03-11 Atsushi Enomoto <atsushi@ximian.com>
259 * SerializationMap.cs : actually it could just be ICollection<T>.
261 2009-03-11 Atsushi Enomoto <atsushi@ximian.com>
263 * SerializationMap.cs : implemented generic IList deserialization.
265 2009-03-10 Atsushi Enomoto <atsushi@ximian.com>
267 * KnownTypeCollection.cs : fix for generic serialization.
269 2009-02-27 Atsushi Enomoto <atsushi@ximian.com>
271 * SerializationMap.cs : look for unordered members first, in
272 different iteration. Got SL OpenStreetMap working.
274 2009-02-13 Atsushi Enomoto <atsushi@ximian.com>
276 * SerializationMap.cs : remove use of non-2.1 CreateInstance().
277 * XmlFormatterDeserializer.cs : allow empty element.
279 2009-02-13 Atsushi Enomoto <atsushi@ximian.com>
281 * SerializationMap.cs, DataContractSerializer.cs,
282 KnownTypeCollection.cs : now .NET 3.5/SP1 supports non-contract
285 2009-02-13 Atsushi Enomoto <atsushi@ximian.com>
287 * SerializationMap.cs, KnownTypeCollection.cs : couple of refactoring
288 to simplify code base and handle CollectionDataContract namespace.
290 2009-02-13 Atsushi Enomoto <atsushi@ximian.com>
292 * SerializationMap.cs : oops, remove debug lines.
294 2009-02-13 Atsushi Enomoto <atsushi@ximian.com>
296 * DataContractSerializer.cs : remove extra writexmlns.
297 * SerializationMap.cs : allow DataMember of collection contract type
299 * KnownTypeCollection.cs : it was not iterating interfaces to find
300 IEnumerable<T> correctly.
302 2009-02-03 Atsushi Enomoto <atsushi@ximian.com>
304 * SerializationMap.cs : a bit more detailed error message.
306 2009-01-23 Atsushi Enomoto <atsushi@ximian.com>
308 * KnownTypeCollection.cs : similar fix to the previous one,
311 2009-01-22 Alan McGovern <amcgovern@novell.com>
313 * KnownTypeCollection.cs : The byte overload doesn't exist in
314 Silverlight, so cast the byte to an int instead.
316 2008-11-23 Atsushi Enomoto <atsushi@ximian.com>
318 * DataContractAttribute.cs : remove MonoTODO.
320 2008-11-23 Atsushi Enomoto <atsushi@ximian.com>
322 * SerializationMap.cs, XmlFormatterSerializer.cs,
323 XmlFormatterDeserializer.cs, DataContractAttribute.cs,
324 CollectionDataContractAttribute.cs, KnownTypeCollection.cs :
325 support IsReference (new in 3.5 SP1).
327 2008-11-23 Atsushi Enomoto <atsushi@ximian.com>
329 * DataContractSerializer.cs : remove extra type validity check.
331 2008-11-23 Atsushi Enomoto <atsushi@ximian.com>
333 * XmlFormatterSerializer.cs : one object could not be serialized
334 twice in non-circular situation.
336 2008-09-09 Atsushi Enomoto <atsushi@ximian.com>
337 Jb Evain <jbevain@novell.com>
339 * IDataContractSurrogater.cs, SerializationMap.cs:
340 add support to build on the net_2_1 profile.
342 2008-06-19 Noam Lampert <noaml@mainsoft.com>
344 * KnownTypeCollection.cs: Support anyUri type
346 2008-06-05 Noam Lampert <noaml@mainsoft.com>
348 * KnownTypeCollection.cs: Support XmlRoot attribute
350 2008-06-01 Noam Lampert <noaml@mainsoft.com>
352 * KnownTypeCollection.cs: Implement byte[] serialization.
354 2008-05-19 Noam Lampert <noaml@mainsoft.com>
356 * KnownTypeCollection.cs: Implement char serialization.
358 2008-05-19 Noam Lampert <noaml@mainsoft.com>
360 * KnownTypeCollection.cs, XmlFormatterDeserializer.cs: Imporve support for
361 Nullable types in contracts.
363 2008-04-29 Eyal Alaluf <eyala@mainsoft.com>
365 * KnownTypeCollection.cs: Fixed a typo in long conversion.
367 2008-04-17 Eyal Alaluf <eyala@mainsoft.com>
369 * SerializationMap.cs: Implement partially collections deserialization.
370 Supports arrays and types derived from IList. Needs support for calling
371 'Add' method and for dictionaries.
372 * SerializationMap.cs XmlFormatterSerializer.cs DataContractSerializer.cs:
373 Serialize namespaces for base members according to base class namespace.
375 2008-04-14 Eyal Alaluf <eyala@mainsoft.com>
377 * SerializationMap.cs: Use FormatterServices.GetUninitializedObject instead
378 of Activator.CreateInstance.
380 2008-04-10 Eyal Alaluf <eyala@mainsoft.com>
382 * DataContractSerializer.cs: Write and register the current type namespace
384 * XmlObjectSerializer.cs: ReadObject verifies by default.
385 * XmlFormatterSerializer.cs: Write and register XML namespaces.
386 * XmlFormatterDeserializer.cs: Refactored so Deserialize instance method can
387 be used from SerializationMap deserialization logic recursively.
388 * SerializationMap.cs: Reimplemented main deserialization logic. Now it
389 handles better missing entries, consumes the XmlReader until the end
390 element and handles XML namespaces correctly.
391 Enabled checks for required fields.
393 2008-02-27 Eyal Alaluf <eyala@mainsoft.com>
395 * SerializationMap.cs: Fix namespace logic at least in simple case where
396 there are several unknown elements before the current element.
397 * ContractNamespaceAttribute.cs: The ClrNamespace is not set by the ctor.
398 * XmlObjectSerializer.cs: Dispose the XmlWriter created in WriteObject
400 * DataMemberAttribute.cs: Added the EmitDefaultValue property.
401 * XsdDataContractImporter.cs: Handle null arguments in Import methods.
402 * KnownTypeCollection.cs: Use XmlConvert.ToDateTime with roundtrip style.
404 2007-12-05 Atsushi Enomoto <atsushi@ximian.com>
406 * XmlObjectSerializer.cs : some methods became virtual (in Redbits).
407 * DataContractSerializer.cs : added some overriden methods in Redbits.
408 knownTypes can be null in .ctor().
410 2007-08-17 Atsushi Enomoto <atsushi@ximian.com>
412 * SerializationMap.cs : for void it cannot be instantiated. Return
415 2007-08-17 Atsushi Enomoto <atsushi@ximian.com>
417 * XmlFormatterDeserializer.cs DataContractSerializer.cs :
418 uhoh, the semantic of bool parameter in ReadObject() has
419 changed in the RTM. Implemented it as verifyObjectName.
421 2007-03-27 Atsushi Enomoto <atsushi@ximian.com>
423 * SerializationMap.cs
424 XmlFormatterSerializer.cs
425 DataContractSerializer.cs :
426 now it needs some mess to handle serialization namespaces.
427 Collection items are serialized in its own xml namespace. Others,
428 (including the collection member itself) is serialized in its
429 parent xml namespace. Collection items are serialized with its
431 * XsdDataContractImporter.cs : use constant.
433 2007-03-26 Atsushi Enomoto <atsushi@ximian.com>
435 * KnownTypeCollection.cs : added support for Guid serialization.
437 2006-10-20 Atsushi Enomoto <atsushi@ximian.com>
439 * KnownTypeCollection.cs : (RemoveItem) don't remove items while
442 2006-09-06 Ankit Jain <jankit@novell.com>
444 * SerializationMap.cs (SerializationMap.GetSequence): Set minOccurs = 0
446 2006-09-05 Ankit Jain <jankit@novell.com>
448 * XsdDataContractExporter.cs (XsdDataContractExporter.MSTypesSchema):
449 Load resource mstypes.schema
450 (XsdDataContractExporter.Schemas): Add MSTypesSchema by default.
452 2006-09-05 Ankit Jain <jankit@novell.com>
454 * SerializationMap.cs (SerializationMap.AddImport): New.
455 (SerializationMap.GetSequence): Use AddImport.
457 2006-09-04 Ankit Jain <jankit@novell.com>
459 * SerializationMap.cs (SerializationMap.GetSchemaSet): Remove.
460 (SerializationMap.GetSchemaType):
461 (SerializationMap.GetSequence):
462 (SerializationMap.GetSchema): Change XmlSchemas param to XmlSchemaSet.
463 Call XmlSchemaSet.Reprocess whenever an existing schema is modified.
464 * XsdDataContractExporter.cs (XsdDataContractExporter.Export): Update to
465 changes in SerializationMap.
466 (XsdDataContractExporter.CanExport): Implement.
467 (XsdDataContractExporter.GetSchemaType): Implement.
468 (XsdDataContractExporter.GetSchemaTypeName): Implement.
469 (XsdDataContractExporter.KnownTypes): New.
470 (XsdDataContractExporter.GeneratedTypes): New.
472 2006-09-01 Ankit Jain <jankit@novell.com>
474 * SerializationMap.cs (SerializationMap.GetSchemaSet): New.
475 (SerializationMap.IsPrimitive): New.
476 (SerializationMap.GetSchemaType): New.
477 (SerializationMap.GetSequence): New.
478 (SerializationMap.GetMembers): New.
479 (SerializationMap.GetSchemaElement): New.
480 (SerializationMap.GetSchema): New.
481 (SerializationMap.GetQualifiedName): New.
482 New methods for exporting schema for the type.
484 (SharedContractMap.ctor): Move code for building Members list to ..
485 (SharedContractMap.GetMembers): .. here.
487 (CollectionTypeMap.Serialize): Mark 'override'.
488 (CollectionTypeMap.GetMembers): 'override' and throw
489 NotImplementedException.
490 (CollectionTypeMap.GetSchemaType): Implement.
492 (SharedTypeMap..ctor): Move code to ..
493 (SharedTypeMap.GetMembers): .. here.
494 (EnumMap.GetSchemaType): Implement.
496 * XsdDataContractExporter.cs (XsdDataContractExporter.Export):
498 * KnownTypeCollection.cs (KnownTypeCollection.GetCollectionQName): Use
499 GetQName instead of GetXmlName. Set Namespace for collections of
500 primitive types to MSArraysNamespace
502 2006-08-31 Ankit Jain <jankit@novell.com>
504 * SerializationMap.cs (EnumMap): New. For de/serializing enums.
505 (EnumMemberInfo): New.
506 (SerializationMap.DeserializeContent): Made protected virtual from private.
507 * DataContractSerializer.cs (WriteStartObject):
508 Ensure that "i:type" is not emitted for enums.
509 * KnownTypeCollection.cs (GetPrimitiveTypeName): Don't treat enum as a
511 (GetQName): Likewise. Use GetEnumQName for enums.
513 (IsPrimitiveNotEnum): New.
514 (TryRegister): Add support for enums.
517 2006-08-14 Atsushi Enomoto <atsushi@ximian.com>
519 * XmlFormatterSerializer.cs : (contd from my previous change)
520 ... and don't complain at WriteObject(). It is somehow required
521 in S.SM.D.WSTrustContract (soon to be committed).
523 2006-07-27 Ankit Jain <jankit@novell.com>
525 * XsdDataContractImporter.cs (Compile): Remove, thanks to eno
526 XmlSchemaSet.Compile () works now.
527 Update to directly use XmlSchemaSet.Compile ()
529 2006-07-27 Ankit Jain <jankit@novell.com>
531 * XsdDataContractImporter.cs (ImportInternal): New.
532 Update various overloads of Import to use this.
533 (ImportFromTypeMapping): New. Emits code for a DataContract from a
534 XmlTypeMapping. Code is duplicate of
535 ServiceContractGenerator.ExportDataContract .
536 (GetNamespace): New. Duplicate like above.
537 (Compile): New. Temporary hack, will XmlSchemaSet.Compile is not
540 2006-07-18 Atsushi Enomoto <atsushi@ximian.com>
542 * XmlFormatterSerializer.cs, KnownTypeCollection.cs :
543 don't raise an error at DataContractSerializer..ctor(). Raise
544 InvalidDataContractException on WriteObject().
546 2006-07-12 Ankit Jain <jankit@novell.com>
548 * SerializationMap.cs (XmlSerializableMap): New. Map for classes which
549 implement IXmlSerializable interface.
550 * KnownTypeCollection.cs (KnownTypeCollection.GetQName): Add support for
551 types which implement IXmlSerializable interface. Change the order in
552 which DataContractAttribute/IXmlSerializable/SerializableAttribute get
554 (KnownTypeCollection.TryRegister): Change the order like above.
555 (KnownTypeCollection.RegisterIXmlSerializable): New.
557 2006-07-04 Atsushi Enomoto <atsushi@ximian.com>
559 * XsdDataContractExporter.cs, XmlObjectSerializer.cs,
560 InvalidDataContractException.cs : some June CTP updates.
562 2006-07-04 Atsushi Enomoto <atsushi@ximian.com>
564 * IDataContractSurrogate.cs, ExportOptions.cs,
565 DataContractSerializer.cs, KnownTypeCollection.cs :
568 2006-05-09 Atsushi Enomoto <atsushi@ximian.com>
570 * DataContractSerializer.cs : null knownTypes argument is allowed.
571 * KnownTypeCollection.cs : Type.Namespace could be null.
573 2006-05-09 Atsushi Enomoto <atsushi@ximian.com>
575 * KnownTypeCollection.cs : for nested classes, treat localName of
576 the QName as "Parent.Child", not "Child".
577 Don't encode name here (to pass ".").
579 2006-05-09 Atsushi Enomoto <atsushi@ximian.com>
581 * DataContractSerializer.cs :
582 Added maxObjectsInGraph range check.
583 interface type has BaseType as null, so end base type check when
584 it is null (I don't think this check is required btw).
586 2006-04-05 Atsushi Enomoto <atsushi@ximian.com>
588 * DataContractSerializer.cs : xmlns:xsi is not written when the
589 target type is string.
591 2006-03-22 Ankit Jain <jankit@novell.com>
593 * SerializationMap.cs (CheckDataContractEqual): Remove.
594 (Deserialize): Allows expected type to be a derived one from actual
596 (DeserializeInternal): Handle DataMember of type 'object'.
597 * XmlFormatterSerializer.cs (SerializeNonPrimitive): Serialize types not
599 * DataContractSerializer.cs (.ctor): Use KnownTypeCollection.GetQName
600 instead of doing it manually.
601 (PopulateTypes): Change return type from KnownTypeCollection to void.
602 Scan the base types to ensure that all have DataContract or Serializable
604 Add all (including inherited) KnownTypeAttribute values to the
607 2006-03-18 Ankit Jain <jankit@novell.com>
609 * SerializationMap.cs (SerializationMap.GetEmptyInstance): Rename to ..
610 (SerializationMap.GetInstance): .. this. Gets the instance or null if nil=true.
611 (SerializationMap.DeserializeInternal): New. Renamed from ..
612 (SerializationMap.Deserialize): .. this. Check DataContract equivalence, and use new
613 DeserializeInternal for rest of the work.
614 (DeserializeContent): Cleanup and handle various "null" cases.
615 * XmlFormatterSerializer.cs (Write_i_type): New. Write i:type=".."
616 (SerializeNonPrimitive): Update to use Write_i_type.
617 * DataContractSerializer.cs (WriteStartObject): Add rootType to known_types.
619 2006-03-16 Ankit Jain <jankit@novell.com>
621 * SerializationMap.cs (SerializationMap.Deserialize): Use NameTable.Get
622 before reader.LookupNamespace.
623 (DataMemberInfo.Compare): Use String.CompareOrdinal instead of
626 2006-03-16 Ankit Jain <jankit@novell.com>
628 * SerializationMap.cs (SerializationMap.GetEmptyInstance): New.
629 (SerializationMap.Deserialize): Refactor, handle primitive types and nils.
630 (SerializationMap.DeserializeContent): Handle nils and nested DataContracts.
631 (SharedContractMap.ctor): Include inherited properties and fields, in
634 2006-03-15 Ankit Jain <jankit@novell.com>
636 * KnownTypeCollection.cs (IsPrimitiveType): New.
637 * SerializationMap.cs (Deserialize): Handle primitive types.
639 2006-03-15 Ankit Jain <jankit@novell.com>
641 * DataContractSerializer.cs (WriteObjectContent): Handle null.
642 (WriteStartObject): Rewritten.
643 * KnownTypeCollection.cs (GetQName): New. Return QName for a given type.
645 (GetSerializableQName):
646 (GetCollectionQName): New.
648 (RegisterSerializable):
649 (RegisterCollection): Update to use new Get* methods.
650 * SerializationMap.cs (CheckDataContractEqual): New.
651 (Deserialize): Split into this and ..
652 (DeserializeContent): .. this.
653 * XmlDictionaryWriter.cs (CreateTextWriter): Use UTF8Encoding.
655 2006-03-09 Atsushi Enomoto <atsushi@ximian.com>
657 * DataContractSerializer.cs : xmlns output should be done at
660 2006-03-08 Ankit Jain <jankit@novell.com>
662 * DataContractSerializer.cs (.ctor): Use name & namespace specified (if any)
663 with the DataContractAttribute for non-primitive types.
664 (DataContractSerializer.WriteStartObject): DataContractAttribute.Name
667 2006-03-03 Atsushi Enomoto <atsushi@ximian.com>
669 * DataContractSerializer.cs : Handle primitive type name rather than
670 raw type name in constructors that don't receive root QName.
671 In case the actual graph is not of root type, write xsi:type.
673 2006-03-02 Atsushi Enomoto <atsushi@ximian.com>
675 * KnownTypeCollection.cs : default namespace contains common MS base
677 * XmlObjectSerializer.cs : added internal common utility field.
678 * DataContractSerializer.cs : Fixed constructors to fill fields and
680 * NetDataContractSerializer.cs : just leave it unimplemented until
681 we find how it works. It looks different from what
682 DataContractSerializer does.
684 2006-01-17 Atsushi Enomoto <atsushi@ximian.com>
686 * XmlFormatter.cs : extra namespaces are not written in Dec.CTP.
688 2005-11-28 Atsushi Enomoto <atsushi@ximian.com>
690 * KnownTypeCollection.cs : override.
692 2005-11-02 Atsushi Enomoto <atsushi@ximian.com>
694 * SerializationMap.cs, XmlFormatterSerializer.cs, XmlFormatter.cs
695 XmlFormatterDeserializer.cs, KnownTypeCollection.cs :
696 several changes. Partial support for collection serialization.
697 SerializationMap now contains its own Deserialize()/Serialize()
700 2005-10-20 Atsushi Enomoto <atsushi@ximian.com>
702 * XmlFormatterDeserializer.cs : new file.
703 * SerializationMap.cs, XmlFormatter.cs, KnownTypeCollection.cs :
704 several changes for pretty primitive Deserialize() implementation.
706 2005-10-07 Atsushi Enomoto <atsushi@ximian.com>
708 Added hacky serialization feature. Actually it should be rewritten to
709 be based on IDataContractSurrogate.
710 * SerializationMap.cs, XmlFormatterSerializer.cs :
711 new files for Serialize() implementation.
712 * KnownTypeCollection.cs : use serialization maps to check contracts.
713 * XmlFormatter.cs : implemented hacky Serialize().
714 * DataMemberAttribute.cs : default Order is -1.
715 * DataContractAttribute.cs : added tiny comment.
717 2005-10-03 Atsushi Enomoto <atsushi@ximian.com>
719 * XmlFormatter.cs : Added implementation switch between
720 BinaryFormatter and internal DataContractFormatter.
721 * XmlSerializableServices.cs : WriteNodes() impl.
723 2005-10-03 Atsushi Enomoto <atsushi@ximian.com>
725 * XmlSerializableServices.cs : ReadNodes() impl.
727 2005-09-28 Atsushi Enomoto <atsushi@ximian.com>
729 * KnownTypeAttribute.cs : fixed attribute usage.
731 2005-09-22 Atsushi Enomoto <atsushi@ximian.com>
733 * IDataContractSurrogate.cs, ContractNamespaceAttribute.cs,
734 XsdDataContractExporter.cs, KnownTypeAttribute.cs,
735 SerializationMode.cs, XmlFormatter.cs, DataMemberAttribute.cs,
736 ImportOptions.cs, UnknownSerializationData.cs,
737 SerializationFactoryMethodAttribute.cs, XmlSerializableServices.cs,
738 DataContractAttribute.cs, ExportOptions.cs,
739 InvalidDataContractException.cs, IUnknownSerializationData.cs,
740 CollectionDataContractAttribute.cs, XsdDataContractImporter.cs,
741 KnownTypeCollection.cs :
742 #if NET_2_0. coding style was updated.
744 2005-09-22 Atsushi Enomoto <atsushi@ximian.com>
746 * CollectionDataContractAttribute.cs
747 ContractNamespaceAttribute.cs
748 DataContractAttribute.cs
749 DataMemberAttribute.cs
751 IDataContractSurrogate.cs
752 InvalidDataContractException.cs
753 IUnknownSerializationData.cs
755 KnownTypeAttribute.cs
756 KnownTypeCollection.cs
757 SerializationFactoryMethodAttribute.cs
759 UnknownSerializationData.cs
761 XmlSerializableServices.cs
762 XsdDataContractExporter.cs
763 XsdDataContractImporter.cs : new files.