1 2010-04-05 Atsushi Enomoto <atsushi@ximian.com>
3 * DataContractExporter-new.cs : do not expect contract attribute on
4 dictionary map. Non-contract type also uses this.
6 2010-04-05 Atsushi Enomoto <atsushi@ximian.com>
8 * SerializationMap.XsdExporter.cs, DataContractExporter-new.cs :
9 handle schema export for SharedTypeMap.
11 2010-04-05 Atsushi Enomoto <atsushi@ximian.com>
13 * KnownTypeCollection.cs, SerializationMap.cs : split SharedTypeMap
14 .ctor() and initialization. Fixed infinite loop for some
15 [Serializable] types (such as Assembly).
17 2010-04-02 Atsushi Enomoto <atsushi@ximian.com>
19 * DataContractSerializer : implement IsStartObject().
21 2010-03-12 Atsushi Enomoto <atsushi@ximian.com>
23 * KnownTypeCollection.cs, SerializationMap.cs :
24 some refactoring to implement MessageDescription.XmlName.
26 2010-03-04 Atsushi Enomoto <atsushi@ximian.com>
28 * SerializationMap.cs : return array instance if the runtime type is
29 an array (it used to return ArrayList without conveting to array).
31 2010-03-01 Atsushi Enomoto <atsushi@ximian.com>
33 * SerializationMap.XsdExporter.cs, XsdDataContractExporter-new.cs:
34 refresh implementation to reflect the latest WCF impl.
35 * SerializationMap.cs : make types partial.
37 2010-02-19 Atsushi Enomoto <atsushi@ximian.com>
39 * XsdDataContractImporter.cs : fix extension type name (and comment).
41 2010-02-19 Atsushi Enomoto <atsushi@ximian.com>
43 * XsdDataContractImporter.cs : added dictionary support.
45 2010-02-18 Atsushi Enomoto <atsushi@ximian.com>
47 * XsdDataContractImporter-new.cs, XsdDataContractImporter.cs :
48 replaced implementation.
49 * ImportOptions.cs : add correct MonoTODOs.
51 2010-02-18 Atsushi Enomoto <atsushi@ximian.com>
53 * XsdDataContractImporter-new.cs : output [KnownType] to expose
54 base/derived type relationship.
56 2010-02-18 Atsushi Enomoto <atsushi@ximian.com>
58 * XsdDataContractImporter-new.cs : fix GenerateInternal.
60 2010-02-17 Atsushi Enomoto <atsushi@ximian.com>
62 * XsdDataContractImporter-new.cs : refresh implementation that is
63 not based on xml serialization. Not enabled yet.
64 * KnownTypeCollection.cs : add cosmetic comment.
66 2010-02-09 Atsushi Enomoto <atsushi@ximian.com>
68 * XsdDataContractImporter.cs : add appropriate code namespaces
69 imported from xsd namespace.
71 2010-02-08 Atsushi Enomoto <atsushi@ximian.com>
73 * XsdDataContractImporter.cs : do not add primitive ArrayOfxxx types.
75 2010-02-08 Atsushi Enomoto <atsushi@ximian.com>
77 * XsdDataContractImporter.cs : some generated attributes are put
80 2010-01-25 Atsushi Enomoto <atsushi@ximian.com>
82 * SerializationMap.cs : allow readonly field as data member.
85 2010-01-08 Atsushi Enomoto <atsushi@ximian.com>
87 * SerializationMap.cs, KnownTypeCollection.cs : differentiate
88 [DataContract(Namespace=null)] and [DataContract(Namespace="")].
91 2009-12-01 Sebastien Pouliot <sebastien@ximian.com>
93 * DataContractSerializer.cs: Add two missing methods for FX3.0
96 2009-10-22 Atsushi Enomoto <atsushi@ximian.com>
98 * SerializationMap.cs : partly revert previous sorting fix in
99 Sep.28th. Do not sort and mix members in base and derived types.
102 2009-10-21 Jb Evain <jbevain@novell.com>
104 * SerializationMap.cs, KnownTypeCollection.cs: avoid using LINQ
105 on arrays as MonoTouch has issues with them.
107 2009-09-28 Atsushi Enomoto <atsushi@ximian.com>
109 * SerializationMap.cs :
110 There were some places that ignored possible whitespace nodes.
111 Fixed sorting of ordered members so that it does not give
112 incomplete sorting among base/derived types. (should fix #539563.)
113 Give xml error details in some places.
115 2009-09-28 Atsushi Enomoto <atsushi@ximian.com>
117 * KnownTypeCollection.cs : (the previous one didn't fix #539563.)
118 Consider attempts to register the same collection type as it did
121 2009-09-28 Atsushi Enomoto <atsushi@ximian.com>
123 * SerializationMap.cs, KnownTypeCollection.cs : nested use of type
124 in its members resulted in infinite loop. This hopefully fixes
127 2009-09-07 Atsushi Enomoto <atsushi@ximian.com>
129 * IgnoreDataMemberAttribute.cs : add missing type.
130 * SerializationMap.cs : support above.
132 2009-07-23 Sebastien Pouliot <sebastien@ximian.com>
134 * SerializationMap.cs : Ensure Dictionary is still deserialized
135 correctly (wrt previous change). Fix moonlight isolated storage
138 2009-07-22 Atsushi Enomoto <atsushi@ximian.com>
140 * SerializationMap.cs : for empty element, do not try to consume
141 children. Fixed bug #524086.
142 For enum, it is always error when the enum is not flags, and
143 is always default value for flags.
145 2009-07-22 Atsushi Enomoto <atsushi@ximian.com>
147 * XmlFormatterDeserializer.cs : when reading empty primitive value,
148 make sure to consume the reader. Fixed bug #524083.
150 2009-07-22 Atsushi Enomoto <atsushi@ximian.com>
152 * SerializationMap.cs : call MoveToContent() before examining
153 the reader node type.
155 2009-07-22 Atsushi Enomoto <atsushi@ximian.com>
157 * KnownTypeCollection.cs : Find KnownTypeAttributes in base types
158 too. Patch by Rolf Bjarne Kvinge. Fixed bug #524088.
160 2009-07-21 Atsushi Enomoto <atsushi@ximian.com>
162 * DataContractSerializer.cs : it does not write dictionary string
163 when it was not created with it.
165 2009-07-07 Atsushi Enomoto <atsushi@ximian.com>
167 * XmlFormatterDeserializer.cs, SerializationMap.cs : IXmlSerializable
168 were not deserialized correctly as it has mismatch on wrapper
169 element. This fixes PeerNodeAddress.EndpointAddress deserialization.
171 2009-06-26 Atsushi Enomoto <atsushi@ximian.com>
173 * XmlFormatterDeserializer.cs : verifyObjectName rather blocked
174 correct names provided as the root names.
176 2009-06-01 Atsushi Enomoto <atsushi@ximian.com>
178 * XmlFormatterSerializer.cs, KnownTypeCollection.cs : collection
179 types does not emit xsi:type when the actual type is different
180 from the nominal serilaization type. To achieve this, introduced
181 the idea of the actual serialization type.
183 2009-05-28 Atsushi Enomoto <atsushi@ximian.com>
185 * SerializationMap.cs : for default / shared type map, members are
186 serialized in alphabetical order.
188 2009-05-28 Atsushi Enomoto <atsushi@ximian.com>
190 * SerializationMap.cs : generic interface search has to be more
191 complicated. Give kind error message on setting deserialized value.
193 2009-05-28 Atsushi Enomoto <atsushi@ximian.com>
195 * SerializationMap.cs: collection interface cannot be instantiated,
196 so create List<T> (generic) or ArrayList (non-generic) instead.
198 2009-05-25 Atsushi Enomoto <atsushi@ximian.com>
200 * SerializationMap.cs, XmlFormatterSerializer.cs :
201 collection types should not output xsi:type e.g. IList<T> should
202 not exposed xsi:type as xsi:type=List`1.
204 2009-05-18 Atsushi Enomoto <atsushi@ximian.com>
206 * SerializationMap.cs, XmlFormatterDeserializer.cs,
207 KnownTypeCollection.cs : Support for array of some primitive types
208 in the deserializer was missing, which resulted in peer resolver
209 RegisterInfo deserialization failure.
211 2009-05-18 Atsushi Enomoto <atsushi@ximian.com>
213 * XmlFormatterDeserializer.cs : remove type lookup optimization
214 (since .NET 3.5 introduced system types with DC) and fix
215 serialization of system types (ISerializable types were not
216 resolved in previous code).
218 2009-05-18 Atsushi Enomoto <atsushi@ximian.com>
220 * SerializationMap.cs : it was only about 2.1. Fix build.
222 2009-05-18 Atsushi Enomoto <atsushi@ximian.com>
224 * SerializationMap.cs : It is not possible to get schema without
225 IXmlSerializable instance.
227 2009-05-15 Atsushi Enomoto <atsushi@ximian.com>
229 * DataContractSerializer.cs : write dictionary string directly for
230 root name/ns (root only, so far).
232 2009-05-14 Atsushi Enomoto <atsushi@ximian.com>
234 * SerializationMap.cs: interface collection failed to serialize as
235 it was calling inappropriate GetInterfaceMap().
237 2009-04-01 Atsushi Enomoto <atsushi@ximian.com>
239 * XmlFormatterDeserializer.cs : more hack to handle empty
242 2009-03-24 Atsushi Enomoto <atsushi@ximian.com>
244 * SerializationMap.cs, XmlFormatterDeserializer.cs:
245 empty collection deserialization resulted in extra
246 consumption of the next xml node.
248 2009-03-19 Atsushi Enomoto <atsushi@ximian.com>
250 * KnownTypeCollection.cs, XmlFormatterDeserializer.cs :
251 to infer type from xml qname, consider DataContractAttribute
254 2009-03-12 Atsushi Enomoto <atsushi@ximian.com>
256 * SerializationMap.cs : make generic type parsing sloppy.
257 because we don't know some cryptic hash algorithm:
258 http://jeffbarnes.net/portal/blogs/jeff_barnes/archive/2007/05/10/wcf-serialization-and-generics.aspx
260 2009-03-12 Atsushi Enomoto <atsushi@ximian.com>
262 * SerializationMap.cs, KnownTypeCollection.cs :
263 support CollectionDataContract-based dictionary too.
265 2009-03-12 Atsushi Enomoto <atsushi@ximian.com>
267 * SerializationMap.cs, KnownTypeCollection.cs :
268 added support for dictionary serialization (not for
269 CollectionDataContract-attributed dictionary yet).
271 2009-03-12 Atsushi Enomoto <atsushi@ximian.com>
273 * SerializationMap.cs : cosmetic !NET_2_1 fix (no effect).
274 * KnownTypeCollection.cs : use ICollection<> and IList instead of
275 IEnumerable. This causes confusion for dictionary.
277 2009-03-11 Atsushi Enomoto <atsushi@ximian.com>
279 * XmlFormatterSerializer.cs, XmlObjectSerializer.cs,
280 XmlFormatterDeserializer.cs, KnownTypeCollection.cs :
281 add more xsi:type to cover collection items.
283 2009-03-11 Atsushi Enomoto <atsushi@ximian.com>
285 * KnownTypeCollection.cs : fix generic argument names in xml.
286 They should use xmlized names instead of raw type name.
287 * XmlFormatterDeserializer.cs : remove extra Console.WriteLine.
289 2009-03-11 Atsushi Enomoto <atsushi@ximian.com>
291 * SerializationMap.cs : eliminate whitespace misuses.
293 2009-03-11 Atsushi Enomoto <atsushi@ximian.com>
295 * SerializationMap.cs : actually it could just be ICollection<T>.
297 2009-03-11 Atsushi Enomoto <atsushi@ximian.com>
299 * SerializationMap.cs : implemented generic IList deserialization.
301 2009-03-10 Atsushi Enomoto <atsushi@ximian.com>
303 * KnownTypeCollection.cs : fix for generic serialization.
305 2009-02-27 Atsushi Enomoto <atsushi@ximian.com>
307 * SerializationMap.cs : look for unordered members first, in
308 different iteration. Got SL OpenStreetMap working.
310 2009-02-13 Atsushi Enomoto <atsushi@ximian.com>
312 * SerializationMap.cs : remove use of non-2.1 CreateInstance().
313 * XmlFormatterDeserializer.cs : allow empty element.
315 2009-02-13 Atsushi Enomoto <atsushi@ximian.com>
317 * SerializationMap.cs, DataContractSerializer.cs,
318 KnownTypeCollection.cs : now .NET 3.5/SP1 supports non-contract
321 2009-02-13 Atsushi Enomoto <atsushi@ximian.com>
323 * SerializationMap.cs, KnownTypeCollection.cs : couple of refactoring
324 to simplify code base and handle CollectionDataContract namespace.
326 2009-02-13 Atsushi Enomoto <atsushi@ximian.com>
328 * SerializationMap.cs : oops, remove debug lines.
330 2009-02-13 Atsushi Enomoto <atsushi@ximian.com>
332 * DataContractSerializer.cs : remove extra writexmlns.
333 * SerializationMap.cs : allow DataMember of collection contract type
335 * KnownTypeCollection.cs : it was not iterating interfaces to find
336 IEnumerable<T> correctly.
338 2009-02-03 Atsushi Enomoto <atsushi@ximian.com>
340 * SerializationMap.cs : a bit more detailed error message.
342 2009-01-23 Atsushi Enomoto <atsushi@ximian.com>
344 * KnownTypeCollection.cs : similar fix to the previous one,
347 2009-01-22 Alan McGovern <amcgovern@novell.com>
349 * KnownTypeCollection.cs : The byte overload doesn't exist in
350 Silverlight, so cast the byte to an int instead.
352 2008-11-23 Atsushi Enomoto <atsushi@ximian.com>
354 * DataContractAttribute.cs : remove MonoTODO.
356 2008-11-23 Atsushi Enomoto <atsushi@ximian.com>
358 * SerializationMap.cs, XmlFormatterSerializer.cs,
359 XmlFormatterDeserializer.cs, DataContractAttribute.cs,
360 CollectionDataContractAttribute.cs, KnownTypeCollection.cs :
361 support IsReference (new in 3.5 SP1).
363 2008-11-23 Atsushi Enomoto <atsushi@ximian.com>
365 * DataContractSerializer.cs : remove extra type validity check.
367 2008-11-23 Atsushi Enomoto <atsushi@ximian.com>
369 * XmlFormatterSerializer.cs : one object could not be serialized
370 twice in non-circular situation.
372 2008-09-09 Atsushi Enomoto <atsushi@ximian.com>
373 Jb Evain <jbevain@novell.com>
375 * IDataContractSurrogater.cs, SerializationMap.cs:
376 add support to build on the net_2_1 profile.
378 2008-06-19 Noam Lampert <noaml@mainsoft.com>
380 * KnownTypeCollection.cs: Support anyUri type
382 2008-06-05 Noam Lampert <noaml@mainsoft.com>
384 * KnownTypeCollection.cs: Support XmlRoot attribute
386 2008-06-01 Noam Lampert <noaml@mainsoft.com>
388 * KnownTypeCollection.cs: Implement byte[] serialization.
390 2008-05-19 Noam Lampert <noaml@mainsoft.com>
392 * KnownTypeCollection.cs: Implement char serialization.
394 2008-05-19 Noam Lampert <noaml@mainsoft.com>
396 * KnownTypeCollection.cs, XmlFormatterDeserializer.cs: Imporve support for
397 Nullable types in contracts.
399 2008-04-29 Eyal Alaluf <eyala@mainsoft.com>
401 * KnownTypeCollection.cs: Fixed a typo in long conversion.
403 2008-04-17 Eyal Alaluf <eyala@mainsoft.com>
405 * SerializationMap.cs: Implement partially collections deserialization.
406 Supports arrays and types derived from IList. Needs support for calling
407 'Add' method and for dictionaries.
408 * SerializationMap.cs XmlFormatterSerializer.cs DataContractSerializer.cs:
409 Serialize namespaces for base members according to base class namespace.
411 2008-04-14 Eyal Alaluf <eyala@mainsoft.com>
413 * SerializationMap.cs: Use FormatterServices.GetUninitializedObject instead
414 of Activator.CreateInstance.
416 2008-04-10 Eyal Alaluf <eyala@mainsoft.com>
418 * DataContractSerializer.cs: Write and register the current type namespace
420 * XmlObjectSerializer.cs: ReadObject verifies by default.
421 * XmlFormatterSerializer.cs: Write and register XML namespaces.
422 * XmlFormatterDeserializer.cs: Refactored so Deserialize instance method can
423 be used from SerializationMap deserialization logic recursively.
424 * SerializationMap.cs: Reimplemented main deserialization logic. Now it
425 handles better missing entries, consumes the XmlReader until the end
426 element and handles XML namespaces correctly.
427 Enabled checks for required fields.
429 2008-02-27 Eyal Alaluf <eyala@mainsoft.com>
431 * SerializationMap.cs: Fix namespace logic at least in simple case where
432 there are several unknown elements before the current element.
433 * ContractNamespaceAttribute.cs: The ClrNamespace is not set by the ctor.
434 * XmlObjectSerializer.cs: Dispose the XmlWriter created in WriteObject
436 * DataMemberAttribute.cs: Added the EmitDefaultValue property.
437 * XsdDataContractImporter.cs: Handle null arguments in Import methods.
438 * KnownTypeCollection.cs: Use XmlConvert.ToDateTime with roundtrip style.
440 2007-12-05 Atsushi Enomoto <atsushi@ximian.com>
442 * XmlObjectSerializer.cs : some methods became virtual (in Redbits).
443 * DataContractSerializer.cs : added some overriden methods in Redbits.
444 knownTypes can be null in .ctor().
446 2007-08-17 Atsushi Enomoto <atsushi@ximian.com>
448 * SerializationMap.cs : for void it cannot be instantiated. Return
451 2007-08-17 Atsushi Enomoto <atsushi@ximian.com>
453 * XmlFormatterDeserializer.cs DataContractSerializer.cs :
454 uhoh, the semantic of bool parameter in ReadObject() has
455 changed in the RTM. Implemented it as verifyObjectName.
457 2007-03-27 Atsushi Enomoto <atsushi@ximian.com>
459 * SerializationMap.cs
460 XmlFormatterSerializer.cs
461 DataContractSerializer.cs :
462 now it needs some mess to handle serialization namespaces.
463 Collection items are serialized in its own xml namespace. Others,
464 (including the collection member itself) is serialized in its
465 parent xml namespace. Collection items are serialized with its
467 * XsdDataContractImporter.cs : use constant.
469 2007-03-26 Atsushi Enomoto <atsushi@ximian.com>
471 * KnownTypeCollection.cs : added support for Guid serialization.
473 2006-10-20 Atsushi Enomoto <atsushi@ximian.com>
475 * KnownTypeCollection.cs : (RemoveItem) don't remove items while
478 2006-09-06 Ankit Jain <jankit@novell.com>
480 * SerializationMap.cs (SerializationMap.GetSequence): Set minOccurs = 0
482 2006-09-05 Ankit Jain <jankit@novell.com>
484 * XsdDataContractExporter.cs (XsdDataContractExporter.MSTypesSchema):
485 Load resource mstypes.schema
486 (XsdDataContractExporter.Schemas): Add MSTypesSchema by default.
488 2006-09-05 Ankit Jain <jankit@novell.com>
490 * SerializationMap.cs (SerializationMap.AddImport): New.
491 (SerializationMap.GetSequence): Use AddImport.
493 2006-09-04 Ankit Jain <jankit@novell.com>
495 * SerializationMap.cs (SerializationMap.GetSchemaSet): Remove.
496 (SerializationMap.GetSchemaType):
497 (SerializationMap.GetSequence):
498 (SerializationMap.GetSchema): Change XmlSchemas param to XmlSchemaSet.
499 Call XmlSchemaSet.Reprocess whenever an existing schema is modified.
500 * XsdDataContractExporter.cs (XsdDataContractExporter.Export): Update to
501 changes in SerializationMap.
502 (XsdDataContractExporter.CanExport): Implement.
503 (XsdDataContractExporter.GetSchemaType): Implement.
504 (XsdDataContractExporter.GetSchemaTypeName): Implement.
505 (XsdDataContractExporter.KnownTypes): New.
506 (XsdDataContractExporter.GeneratedTypes): New.
508 2006-09-01 Ankit Jain <jankit@novell.com>
510 * SerializationMap.cs (SerializationMap.GetSchemaSet): New.
511 (SerializationMap.IsPrimitive): New.
512 (SerializationMap.GetSchemaType): New.
513 (SerializationMap.GetSequence): New.
514 (SerializationMap.GetMembers): New.
515 (SerializationMap.GetSchemaElement): New.
516 (SerializationMap.GetSchema): New.
517 (SerializationMap.GetQualifiedName): New.
518 New methods for exporting schema for the type.
520 (SharedContractMap.ctor): Move code for building Members list to ..
521 (SharedContractMap.GetMembers): .. here.
523 (CollectionTypeMap.Serialize): Mark 'override'.
524 (CollectionTypeMap.GetMembers): 'override' and throw
525 NotImplementedException.
526 (CollectionTypeMap.GetSchemaType): Implement.
528 (SharedTypeMap..ctor): Move code to ..
529 (SharedTypeMap.GetMembers): .. here.
530 (EnumMap.GetSchemaType): Implement.
532 * XsdDataContractExporter.cs (XsdDataContractExporter.Export):
534 * KnownTypeCollection.cs (KnownTypeCollection.GetCollectionQName): Use
535 GetQName instead of GetXmlName. Set Namespace for collections of
536 primitive types to MSArraysNamespace
538 2006-08-31 Ankit Jain <jankit@novell.com>
540 * SerializationMap.cs (EnumMap): New. For de/serializing enums.
541 (EnumMemberInfo): New.
542 (SerializationMap.DeserializeContent): Made protected virtual from private.
543 * DataContractSerializer.cs (WriteStartObject):
544 Ensure that "i:type" is not emitted for enums.
545 * KnownTypeCollection.cs (GetPrimitiveTypeName): Don't treat enum as a
547 (GetQName): Likewise. Use GetEnumQName for enums.
549 (IsPrimitiveNotEnum): New.
550 (TryRegister): Add support for enums.
553 2006-08-14 Atsushi Enomoto <atsushi@ximian.com>
555 * XmlFormatterSerializer.cs : (contd from my previous change)
556 ... and don't complain at WriteObject(). It is somehow required
557 in S.SM.D.WSTrustContract (soon to be committed).
559 2006-07-27 Ankit Jain <jankit@novell.com>
561 * XsdDataContractImporter.cs (Compile): Remove, thanks to eno
562 XmlSchemaSet.Compile () works now.
563 Update to directly use XmlSchemaSet.Compile ()
565 2006-07-27 Ankit Jain <jankit@novell.com>
567 * XsdDataContractImporter.cs (ImportInternal): New.
568 Update various overloads of Import to use this.
569 (ImportFromTypeMapping): New. Emits code for a DataContract from a
570 XmlTypeMapping. Code is duplicate of
571 ServiceContractGenerator.ExportDataContract .
572 (GetNamespace): New. Duplicate like above.
573 (Compile): New. Temporary hack, will XmlSchemaSet.Compile is not
576 2006-07-18 Atsushi Enomoto <atsushi@ximian.com>
578 * XmlFormatterSerializer.cs, KnownTypeCollection.cs :
579 don't raise an error at DataContractSerializer..ctor(). Raise
580 InvalidDataContractException on WriteObject().
582 2006-07-12 Ankit Jain <jankit@novell.com>
584 * SerializationMap.cs (XmlSerializableMap): New. Map for classes which
585 implement IXmlSerializable interface.
586 * KnownTypeCollection.cs (KnownTypeCollection.GetQName): Add support for
587 types which implement IXmlSerializable interface. Change the order in
588 which DataContractAttribute/IXmlSerializable/SerializableAttribute get
590 (KnownTypeCollection.TryRegister): Change the order like above.
591 (KnownTypeCollection.RegisterIXmlSerializable): New.
593 2006-07-04 Atsushi Enomoto <atsushi@ximian.com>
595 * XsdDataContractExporter.cs, XmlObjectSerializer.cs,
596 InvalidDataContractException.cs : some June CTP updates.
598 2006-07-04 Atsushi Enomoto <atsushi@ximian.com>
600 * IDataContractSurrogate.cs, ExportOptions.cs,
601 DataContractSerializer.cs, KnownTypeCollection.cs :
604 2006-05-09 Atsushi Enomoto <atsushi@ximian.com>
606 * DataContractSerializer.cs : null knownTypes argument is allowed.
607 * KnownTypeCollection.cs : Type.Namespace could be null.
609 2006-05-09 Atsushi Enomoto <atsushi@ximian.com>
611 * KnownTypeCollection.cs : for nested classes, treat localName of
612 the QName as "Parent.Child", not "Child".
613 Don't encode name here (to pass ".").
615 2006-05-09 Atsushi Enomoto <atsushi@ximian.com>
617 * DataContractSerializer.cs :
618 Added maxObjectsInGraph range check.
619 interface type has BaseType as null, so end base type check when
620 it is null (I don't think this check is required btw).
622 2006-04-05 Atsushi Enomoto <atsushi@ximian.com>
624 * DataContractSerializer.cs : xmlns:xsi is not written when the
625 target type is string.
627 2006-03-22 Ankit Jain <jankit@novell.com>
629 * SerializationMap.cs (CheckDataContractEqual): Remove.
630 (Deserialize): Allows expected type to be a derived one from actual
632 (DeserializeInternal): Handle DataMember of type 'object'.
633 * XmlFormatterSerializer.cs (SerializeNonPrimitive): Serialize types not
635 * DataContractSerializer.cs (.ctor): Use KnownTypeCollection.GetQName
636 instead of doing it manually.
637 (PopulateTypes): Change return type from KnownTypeCollection to void.
638 Scan the base types to ensure that all have DataContract or Serializable
640 Add all (including inherited) KnownTypeAttribute values to the
643 2006-03-18 Ankit Jain <jankit@novell.com>
645 * SerializationMap.cs (SerializationMap.GetEmptyInstance): Rename to ..
646 (SerializationMap.GetInstance): .. this. Gets the instance or null if nil=true.
647 (SerializationMap.DeserializeInternal): New. Renamed from ..
648 (SerializationMap.Deserialize): .. this. Check DataContract equivalence, and use new
649 DeserializeInternal for rest of the work.
650 (DeserializeContent): Cleanup and handle various "null" cases.
651 * XmlFormatterSerializer.cs (Write_i_type): New. Write i:type=".."
652 (SerializeNonPrimitive): Update to use Write_i_type.
653 * DataContractSerializer.cs (WriteStartObject): Add rootType to known_types.
655 2006-03-16 Ankit Jain <jankit@novell.com>
657 * SerializationMap.cs (SerializationMap.Deserialize): Use NameTable.Get
658 before reader.LookupNamespace.
659 (DataMemberInfo.Compare): Use String.CompareOrdinal instead of
662 2006-03-16 Ankit Jain <jankit@novell.com>
664 * SerializationMap.cs (SerializationMap.GetEmptyInstance): New.
665 (SerializationMap.Deserialize): Refactor, handle primitive types and nils.
666 (SerializationMap.DeserializeContent): Handle nils and nested DataContracts.
667 (SharedContractMap.ctor): Include inherited properties and fields, in
670 2006-03-15 Ankit Jain <jankit@novell.com>
672 * KnownTypeCollection.cs (IsPrimitiveType): New.
673 * SerializationMap.cs (Deserialize): Handle primitive types.
675 2006-03-15 Ankit Jain <jankit@novell.com>
677 * DataContractSerializer.cs (WriteObjectContent): Handle null.
678 (WriteStartObject): Rewritten.
679 * KnownTypeCollection.cs (GetQName): New. Return QName for a given type.
681 (GetSerializableQName):
682 (GetCollectionQName): New.
684 (RegisterSerializable):
685 (RegisterCollection): Update to use new Get* methods.
686 * SerializationMap.cs (CheckDataContractEqual): New.
687 (Deserialize): Split into this and ..
688 (DeserializeContent): .. this.
689 * XmlDictionaryWriter.cs (CreateTextWriter): Use UTF8Encoding.
691 2006-03-09 Atsushi Enomoto <atsushi@ximian.com>
693 * DataContractSerializer.cs : xmlns output should be done at
696 2006-03-08 Ankit Jain <jankit@novell.com>
698 * DataContractSerializer.cs (.ctor): Use name & namespace specified (if any)
699 with the DataContractAttribute for non-primitive types.
700 (DataContractSerializer.WriteStartObject): DataContractAttribute.Name
703 2006-03-03 Atsushi Enomoto <atsushi@ximian.com>
705 * DataContractSerializer.cs : Handle primitive type name rather than
706 raw type name in constructors that don't receive root QName.
707 In case the actual graph is not of root type, write xsi:type.
709 2006-03-02 Atsushi Enomoto <atsushi@ximian.com>
711 * KnownTypeCollection.cs : default namespace contains common MS base
713 * XmlObjectSerializer.cs : added internal common utility field.
714 * DataContractSerializer.cs : Fixed constructors to fill fields and
716 * NetDataContractSerializer.cs : just leave it unimplemented until
717 we find how it works. It looks different from what
718 DataContractSerializer does.
720 2006-01-17 Atsushi Enomoto <atsushi@ximian.com>
722 * XmlFormatter.cs : extra namespaces are not written in Dec.CTP.
724 2005-11-28 Atsushi Enomoto <atsushi@ximian.com>
726 * KnownTypeCollection.cs : override.
728 2005-11-02 Atsushi Enomoto <atsushi@ximian.com>
730 * SerializationMap.cs, XmlFormatterSerializer.cs, XmlFormatter.cs
731 XmlFormatterDeserializer.cs, KnownTypeCollection.cs :
732 several changes. Partial support for collection serialization.
733 SerializationMap now contains its own Deserialize()/Serialize()
736 2005-10-20 Atsushi Enomoto <atsushi@ximian.com>
738 * XmlFormatterDeserializer.cs : new file.
739 * SerializationMap.cs, XmlFormatter.cs, KnownTypeCollection.cs :
740 several changes for pretty primitive Deserialize() implementation.
742 2005-10-07 Atsushi Enomoto <atsushi@ximian.com>
744 Added hacky serialization feature. Actually it should be rewritten to
745 be based on IDataContractSurrogate.
746 * SerializationMap.cs, XmlFormatterSerializer.cs :
747 new files for Serialize() implementation.
748 * KnownTypeCollection.cs : use serialization maps to check contracts.
749 * XmlFormatter.cs : implemented hacky Serialize().
750 * DataMemberAttribute.cs : default Order is -1.
751 * DataContractAttribute.cs : added tiny comment.
753 2005-10-03 Atsushi Enomoto <atsushi@ximian.com>
755 * XmlFormatter.cs : Added implementation switch between
756 BinaryFormatter and internal DataContractFormatter.
757 * XmlSerializableServices.cs : WriteNodes() impl.
759 2005-10-03 Atsushi Enomoto <atsushi@ximian.com>
761 * XmlSerializableServices.cs : ReadNodes() impl.
763 2005-09-28 Atsushi Enomoto <atsushi@ximian.com>
765 * KnownTypeAttribute.cs : fixed attribute usage.
767 2005-09-22 Atsushi Enomoto <atsushi@ximian.com>
769 * IDataContractSurrogate.cs, ContractNamespaceAttribute.cs,
770 XsdDataContractExporter.cs, KnownTypeAttribute.cs,
771 SerializationMode.cs, XmlFormatter.cs, DataMemberAttribute.cs,
772 ImportOptions.cs, UnknownSerializationData.cs,
773 SerializationFactoryMethodAttribute.cs, XmlSerializableServices.cs,
774 DataContractAttribute.cs, ExportOptions.cs,
775 InvalidDataContractException.cs, IUnknownSerializationData.cs,
776 CollectionDataContractAttribute.cs, XsdDataContractImporter.cs,
777 KnownTypeCollection.cs :
778 #if NET_2_0. coding style was updated.
780 2005-09-22 Atsushi Enomoto <atsushi@ximian.com>
782 * CollectionDataContractAttribute.cs
783 ContractNamespaceAttribute.cs
784 DataContractAttribute.cs
785 DataMemberAttribute.cs
787 IDataContractSurrogate.cs
788 InvalidDataContractException.cs
789 IUnknownSerializationData.cs
791 KnownTypeAttribute.cs
792 KnownTypeCollection.cs
793 SerializationFactoryMethodAttribute.cs
795 UnknownSerializationData.cs
797 XmlSerializableServices.cs
798 XsdDataContractExporter.cs
799 XsdDataContractImporter.cs : new files.