2010-01-25 Marek Habersack <mhabersack@novell.com>
[mono.git] / mcs / class / System.Runtime.Serialization / System.Runtime.Serialization / ChangeLog
1 2010-01-25  Atsushi Enomoto  <atsushi@ximian.com>
2
3         * SerializationMap.cs : allow readonly field as data member.
4           Fixed bug #560155.
5
6 2010-01-08  Atsushi Enomoto  <atsushi@ximian.com>
7
8         * SerializationMap.cs, KnownTypeCollection.cs : differentiate
9           [DataContract(Namespace=null)] and [DataContract(Namespace="")].
10           Fixed bug #568763.
11
12 2009-12-01  Sebastien Pouliot  <sebastien@ximian.com>
13
14         * DataContractSerializer.cs: Add two missing methods for FX3.0 
15         and SL2/SL3.
16
17 2009-10-22  Atsushi Enomoto  <atsushi@ximian.com>
18
19         * SerializationMap.cs : partly revert previous sorting fix in
20           Sep.28th. Do not sort and mix members in base and derived types.
21           Fixed bug #546238.
22
23 2009-10-21  Jb Evain  <jbevain@novell.com>
24
25         * SerializationMap.cs, KnownTypeCollection.cs: avoid using LINQ
26         on arrays as MonoTouch has issues with them.
27
28 2009-09-28  Atsushi Enomoto  <atsushi@ximian.com>
29
30         * SerializationMap.cs :
31           There were some places that ignored possible whitespace nodes.
32           Fixed sorting of ordered members so that it does not give
33           incomplete sorting among base/derived types. (should fix #539563.)
34           Give xml error details in some places.
35
36 2009-09-28  Atsushi Enomoto  <atsushi@ximian.com>
37
38         * KnownTypeCollection.cs : (the previous one didn't fix #539563.)
39           Consider attempts to register the same collection type as it did
40           before.
41
42 2009-09-28  Atsushi Enomoto  <atsushi@ximian.com>
43
44         * SerializationMap.cs, KnownTypeCollection.cs : nested use of type
45           in its members resulted in infinite loop. This hopefully fixes
46           bug #539563.
47
48 2009-09-07  Atsushi Enomoto  <atsushi@ximian.com>
49
50         * IgnoreDataMemberAttribute.cs : add missing type.
51         * SerializationMap.cs : support above.
52
53 2009-07-23  Sebastien Pouliot  <sebastien@ximian.com>
54
55         * SerializationMap.cs : Ensure Dictionary is still deserialized
56         correctly (wrt previous change). Fix moonlight isolated storage
57         settings.
58
59 2009-07-22  Atsushi Enomoto  <atsushi@ximian.com>
60
61         * SerializationMap.cs : for empty element, do not try to consume
62           children. Fixed bug #524086.
63           For enum, it is always error when the enum is not flags, and
64           is always default value for flags.
65
66 2009-07-22  Atsushi Enomoto  <atsushi@ximian.com>
67
68         * XmlFormatterDeserializer.cs : when reading empty primitive value,
69           make sure to consume the reader. Fixed bug #524083.
70
71 2009-07-22  Atsushi Enomoto  <atsushi@ximian.com>
72
73         * SerializationMap.cs : call MoveToContent() before examining
74           the reader node type.
75
76 2009-07-22  Atsushi Enomoto  <atsushi@ximian.com>
77
78         * KnownTypeCollection.cs : Find KnownTypeAttributes in base types
79           too. Patch by Rolf Bjarne Kvinge. Fixed bug #524088.
80
81 2009-07-21  Atsushi Enomoto  <atsushi@ximian.com>
82
83         * DataContractSerializer.cs : it does not write dictionary string
84           when it was not created with it.
85
86 2009-07-07  Atsushi Enomoto  <atsushi@ximian.com>
87
88         * XmlFormatterDeserializer.cs, SerializationMap.cs : IXmlSerializable
89           were not deserialized correctly as it has mismatch on wrapper
90           element. This fixes PeerNodeAddress.EndpointAddress deserialization.
91
92 2009-06-26  Atsushi Enomoto  <atsushi@ximian.com>
93
94         * XmlFormatterDeserializer.cs : verifyObjectName rather blocked
95           correct names provided as the root names.
96
97 2009-06-01  Atsushi Enomoto  <atsushi@ximian.com>
98
99         * XmlFormatterSerializer.cs, KnownTypeCollection.cs : collection
100           types does not emit xsi:type when the actual type is different
101           from the nominal serilaization type. To achieve this, introduced
102           the idea of the actual serialization type.
103
104 2009-05-28  Atsushi Enomoto  <atsushi@ximian.com>
105
106         * SerializationMap.cs : for default / shared type map, members are
107           serialized in alphabetical order.
108
109 2009-05-28  Atsushi Enomoto  <atsushi@ximian.com>
110
111         * SerializationMap.cs : generic interface search has to be more
112           complicated. Give kind error message on setting deserialized value.
113
114 2009-05-28  Atsushi Enomoto  <atsushi@ximian.com>
115
116         * SerializationMap.cs: collection interface cannot be instantiated,
117           so create List<T> (generic) or ArrayList (non-generic) instead.
118
119 2009-05-25  Atsushi Enomoto  <atsushi@ximian.com>
120
121         * SerializationMap.cs, XmlFormatterSerializer.cs :
122           collection types should not output xsi:type e.g. IList<T> should
123           not exposed xsi:type as xsi:type=List`1.
124
125 2009-05-18  Atsushi Enomoto  <atsushi@ximian.com>
126
127         * SerializationMap.cs, XmlFormatterDeserializer.cs,
128           KnownTypeCollection.cs : Support for array of some primitive types
129           in the deserializer was missing, which resulted in peer resolver
130           RegisterInfo deserialization failure.
131
132 2009-05-18  Atsushi Enomoto  <atsushi@ximian.com>
133
134         * XmlFormatterDeserializer.cs : remove type lookup optimization
135           (since .NET 3.5 introduced system types with DC) and fix
136           serialization of system types (ISerializable types were not
137           resolved in previous code).
138
139 2009-05-18  Atsushi Enomoto  <atsushi@ximian.com>
140
141         * SerializationMap.cs : it was only about 2.1. Fix build.
142
143 2009-05-18  Atsushi Enomoto  <atsushi@ximian.com>
144
145         * SerializationMap.cs : It is not possible to get schema without
146           IXmlSerializable instance.
147
148 2009-05-15  Atsushi Enomoto  <atsushi@ximian.com>
149
150         * DataContractSerializer.cs : write dictionary string directly for
151           root name/ns (root only, so far).
152
153 2009-05-14  Atsushi Enomoto  <atsushi@ximian.com>
154
155         * SerializationMap.cs: interface collection failed to serialize as
156           it was calling inappropriate GetInterfaceMap().
157
158 2009-04-01  Atsushi Enomoto  <atsushi@ximian.com>
159
160         * XmlFormatterDeserializer.cs : more hack to handle empty
161           element nicely.
162
163 2009-03-24  Atsushi Enomoto  <atsushi@ximian.com>
164
165         * SerializationMap.cs, XmlFormatterDeserializer.cs:
166           empty collection deserialization resulted in extra
167           consumption of the next xml node.
168
169 2009-03-19  Atsushi Enomoto  <atsushi@ximian.com>
170
171         * KnownTypeCollection.cs, XmlFormatterDeserializer.cs :
172           to infer type from xml qname, consider DataContractAttribute
173           names.
174
175 2009-03-12  Atsushi Enomoto  <atsushi@ximian.com>
176
177         * SerializationMap.cs : make generic type parsing sloppy.
178           because we don't know some cryptic hash algorithm:
179           http://jeffbarnes.net/portal/blogs/jeff_barnes/archive/2007/05/10/wcf-serialization-and-generics.aspx
180
181 2009-03-12  Atsushi Enomoto  <atsushi@ximian.com>
182
183         * SerializationMap.cs, KnownTypeCollection.cs :
184           support CollectionDataContract-based dictionary too.
185
186 2009-03-12  Atsushi Enomoto  <atsushi@ximian.com>
187
188         * SerializationMap.cs, KnownTypeCollection.cs :
189           added support for dictionary serialization (not for
190           CollectionDataContract-attributed dictionary yet).
191
192 2009-03-12  Atsushi Enomoto  <atsushi@ximian.com>
193
194         * SerializationMap.cs : cosmetic !NET_2_1 fix (no effect).
195         * KnownTypeCollection.cs : use ICollection<> and IList instead of
196           IEnumerable. This causes confusion for dictionary.
197
198 2009-03-11  Atsushi Enomoto  <atsushi@ximian.com>
199
200         * XmlFormatterSerializer.cs, XmlObjectSerializer.cs,
201           XmlFormatterDeserializer.cs, KnownTypeCollection.cs :
202           add more xsi:type to cover collection items.
203
204 2009-03-11  Atsushi Enomoto  <atsushi@ximian.com>
205
206         * KnownTypeCollection.cs : fix generic argument names in xml.
207           They should use xmlized names instead of raw type name.
208         * XmlFormatterDeserializer.cs : remove extra Console.WriteLine.
209
210 2009-03-11  Atsushi Enomoto  <atsushi@ximian.com>
211
212         * SerializationMap.cs : eliminate whitespace misuses.
213
214 2009-03-11  Atsushi Enomoto  <atsushi@ximian.com>
215
216         * SerializationMap.cs : actually it could just be ICollection<T>.
217
218 2009-03-11  Atsushi Enomoto  <atsushi@ximian.com>
219
220         * SerializationMap.cs : implemented generic IList deserialization.
221
222 2009-03-10  Atsushi Enomoto  <atsushi@ximian.com>
223
224         * KnownTypeCollection.cs : fix for generic serialization.
225
226 2009-02-27  Atsushi Enomoto  <atsushi@ximian.com>
227
228         * SerializationMap.cs : look for unordered members first, in
229           different iteration. Got SL OpenStreetMap working.
230
231 2009-02-13  Atsushi Enomoto  <atsushi@ximian.com>
232
233         * SerializationMap.cs : remove use of non-2.1 CreateInstance().
234         * XmlFormatterDeserializer.cs : allow empty element.
235
236 2009-02-13  Atsushi Enomoto  <atsushi@ximian.com>
237
238         * SerializationMap.cs, DataContractSerializer.cs,
239           KnownTypeCollection.cs : now .NET 3.5/SP1 supports non-contract
240           type serialization.
241
242 2009-02-13  Atsushi Enomoto  <atsushi@ximian.com>
243
244         * SerializationMap.cs, KnownTypeCollection.cs : couple of refactoring
245           to simplify code base and handle CollectionDataContract namespace.
246
247 2009-02-13  Atsushi Enomoto  <atsushi@ximian.com>
248
249         * SerializationMap.cs : oops, remove debug lines.
250
251 2009-02-13  Atsushi Enomoto  <atsushi@ximian.com>
252
253         * DataContractSerializer.cs : remove extra writexmlns.
254         * SerializationMap.cs : allow DataMember of collection contract type
255           as read-only.
256         * KnownTypeCollection.cs : it was not iterating interfaces to find
257           IEnumerable<T> correctly.
258
259 2009-02-03  Atsushi Enomoto  <atsushi@ximian.com>
260
261         * SerializationMap.cs : a bit more detailed error message.
262
263 2009-01-23  Atsushi Enomoto  <atsushi@ximian.com>
264
265         * KnownTypeCollection.cs : similar fix to the previous one,
266           on uint16.
267
268 2009-01-22  Alan McGovern  <amcgovern@novell.com>
269
270         * KnownTypeCollection.cs : The byte overload doesn't exist in
271         Silverlight, so cast the byte to an int instead.
272
273 2008-11-23  Atsushi Enomoto  <atsushi@ximian.com>
274
275         * DataContractAttribute.cs : remove MonoTODO.
276
277 2008-11-23  Atsushi Enomoto  <atsushi@ximian.com>
278
279         * SerializationMap.cs, XmlFormatterSerializer.cs,
280           XmlFormatterDeserializer.cs, DataContractAttribute.cs,
281           CollectionDataContractAttribute.cs, KnownTypeCollection.cs :
282           support IsReference (new in 3.5 SP1).
283
284 2008-11-23  Atsushi Enomoto  <atsushi@ximian.com>
285
286         * DataContractSerializer.cs : remove extra type validity check.
287
288 2008-11-23  Atsushi Enomoto  <atsushi@ximian.com>
289
290         * XmlFormatterSerializer.cs : one object could not be serialized
291           twice in non-circular situation.
292
293 2008-09-09  Atsushi Enomoto  <atsushi@ximian.com>
294                         Jb Evain  <jbevain@novell.com>
295
296         * IDataContractSurrogater.cs, SerializationMap.cs:
297         add support to build on the net_2_1 profile.
298
299 2008-06-19  Noam Lampert <noaml@mainsoft.com>
300         
301         * KnownTypeCollection.cs: Support anyUri type
302
303 2008-06-05  Noam Lampert <noaml@mainsoft.com>
304         
305         * KnownTypeCollection.cs: Support XmlRoot attribute
306
307 2008-06-01  Noam Lampert <noaml@mainsoft.com>
308         
309         * KnownTypeCollection.cs: Implement byte[] serialization.
310
311 2008-05-19  Noam Lampert <noaml@mainsoft.com>
312         
313         * KnownTypeCollection.cs: Implement char serialization.
314            
315 2008-05-19  Noam Lampert <noaml@mainsoft.com>
316         
317         * KnownTypeCollection.cs, XmlFormatterDeserializer.cs: Imporve support for 
318            Nullable types in contracts.
319            
320 2008-04-29  Eyal Alaluf <eyala@mainsoft.com>
321
322         * KnownTypeCollection.cs: Fixed a typo in long conversion.
323
324 2008-04-17  Eyal Alaluf <eyala@mainsoft.com>
325
326         * SerializationMap.cs: Implement partially collections deserialization.
327           Supports arrays and types derived from IList. Needs support for calling
328           'Add' method and for dictionaries.
329         * SerializationMap.cs XmlFormatterSerializer.cs DataContractSerializer.cs:
330           Serialize namespaces for base members according to base class namespace.
331
332 2008-04-14  Eyal Alaluf <eyala@mainsoft.com>
333
334         * SerializationMap.cs: Use FormatterServices.GetUninitializedObject instead
335           of Activator.CreateInstance.
336
337 2008-04-10  Eyal Alaluf <eyala@mainsoft.com>
338
339         * DataContractSerializer.cs: Write and register the current type namespace
340           within the writer.
341         * XmlObjectSerializer.cs: ReadObject verifies by default.
342         * XmlFormatterSerializer.cs: Write and register XML namespaces.
343         * XmlFormatterDeserializer.cs: Refactored so Deserialize instance method can
344           be used from SerializationMap deserialization logic recursively.
345         * SerializationMap.cs: Reimplemented main deserialization logic. Now it
346           handles better missing entries, consumes the XmlReader until the end
347           element and handles XML namespaces correctly.
348           Enabled checks for required fields.
349
350 2008-02-27  Eyal Alaluf <eyala@mainsoft.com>
351
352         * SerializationMap.cs: Fix namespace logic at least in simple case where
353           there are several unknown elements before the current element.
354         * ContractNamespaceAttribute.cs: The ClrNamespace is not set by the ctor.
355         * XmlObjectSerializer.cs: Dispose the XmlWriter created in WriteObject
356           to a stream.
357         * DataMemberAttribute.cs: Added the EmitDefaultValue property.
358         * XsdDataContractImporter.cs: Handle null arguments in Import methods.
359         * KnownTypeCollection.cs: Use XmlConvert.ToDateTime with roundtrip style.
360
361 2007-12-05  Atsushi Enomoto  <atsushi@ximian.com>
362
363         * XmlObjectSerializer.cs : some methods became virtual (in Redbits).
364         * DataContractSerializer.cs : added some overriden methods in Redbits.
365           knownTypes can be null in .ctor().
366
367 2007-08-17  Atsushi Enomoto  <atsushi@ximian.com>
368
369         * SerializationMap.cs : for void it cannot be instantiated. Return
370           null instead.
371
372 2007-08-17  Atsushi Enomoto  <atsushi@ximian.com>
373
374         * XmlFormatterDeserializer.cs DataContractSerializer.cs :
375           uhoh, the semantic of bool parameter in ReadObject() has
376           changed in the RTM. Implemented it as verifyObjectName.
377
378 2007-03-27  Atsushi Enomoto  <atsushi@ximian.com>
379
380         * SerializationMap.cs
381           XmlFormatterSerializer.cs
382           DataContractSerializer.cs :
383           now it needs some mess to handle serialization namespaces.
384           Collection items are serialized in its own xml namespace. Others,
385           (including the collection member itself) is serialized in its
386           parent xml namespace. Collection items are serialized with its
387           wrapping element.
388         * XsdDataContractImporter.cs : use constant.
389
390 2007-03-26  Atsushi Enomoto  <atsushi@ximian.com>
391
392         * KnownTypeCollection.cs : added support for Guid serialization.
393
394 2006-10-20  Atsushi Enomoto  <atsushi@ximian.com>
395
396         * KnownTypeCollection.cs : (RemoveItem) don't remove items while 
397           iterating.
398
399 2006-09-06  Ankit Jain  <jankit@novell.com>
400
401         * SerializationMap.cs (SerializationMap.GetSequence): Set minOccurs = 0
402
403 2006-09-05  Ankit Jain  <jankit@novell.com>
404
405         * XsdDataContractExporter.cs (XsdDataContractExporter.MSTypesSchema):
406         Load resource mstypes.schema
407         (XsdDataContractExporter.Schemas): Add MSTypesSchema by default.
408
409 2006-09-05  Ankit Jain  <jankit@novell.com>
410
411         * SerializationMap.cs (SerializationMap.AddImport): New.
412         (SerializationMap.GetSequence): Use AddImport.
413
414 2006-09-04  Ankit Jain  <jankit@novell.com>
415
416         * SerializationMap.cs (SerializationMap.GetSchemaSet): Remove.
417         (SerializationMap.GetSchemaType):
418         (SerializationMap.GetSequence):
419         (SerializationMap.GetSchema): Change XmlSchemas param to XmlSchemaSet.
420         Call XmlSchemaSet.Reprocess whenever an existing schema is modified.
421         * XsdDataContractExporter.cs (XsdDataContractExporter.Export): Update to
422         changes in SerializationMap.
423         (XsdDataContractExporter.CanExport): Implement.
424         (XsdDataContractExporter.GetSchemaType): Implement.
425         (XsdDataContractExporter.GetSchemaTypeName): Implement.
426         (XsdDataContractExporter.KnownTypes): New.
427         (XsdDataContractExporter.GeneratedTypes): New.
428
429 2006-09-01  Ankit Jain  <jankit@novell.com>
430
431         * SerializationMap.cs (SerializationMap.GetSchemaSet): New.
432         (SerializationMap.IsPrimitive): New.
433         (SerializationMap.GetSchemaType): New.
434         (SerializationMap.GetSequence): New.
435         (SerializationMap.GetMembers): New.
436         (SerializationMap.GetSchemaElement): New.
437         (SerializationMap.GetSchema): New.
438         (SerializationMap.GetQualifiedName): New.
439         New methods for exporting schema for the type.
440
441         (SharedContractMap.ctor): Move code for building Members list to ..
442         (SharedContractMap.GetMembers): .. here.
443
444         (CollectionTypeMap.Serialize): Mark 'override'.
445         (CollectionTypeMap.GetMembers): 'override' and throw
446         NotImplementedException.
447         (CollectionTypeMap.GetSchemaType): Implement.
448
449         (SharedTypeMap..ctor): Move code to ..
450         (SharedTypeMap.GetMembers): .. here.
451         (EnumMap.GetSchemaType): Implement.
452
453         * XsdDataContractExporter.cs (XsdDataContractExporter.Export):
454         Implement.
455         * KnownTypeCollection.cs (KnownTypeCollection.GetCollectionQName): Use
456         GetQName instead of GetXmlName. Set Namespace for collections of
457         primitive types to MSArraysNamespace
458
459 2006-08-31  Ankit Jain  <jankit@novell.com>
460
461         * SerializationMap.cs (EnumMap): New. For de/serializing enums.
462         (EnumMemberInfo): New.
463         (SerializationMap.DeserializeContent): Made protected virtual from private.
464         * DataContractSerializer.cs (WriteStartObject):
465         Ensure that "i:type" is not emitted for enums.
466         * KnownTypeCollection.cs (GetPrimitiveTypeName): Don't treat enum as a
467         primitive type.
468         (GetQName): Likewise. Use GetEnumQName for enums.
469         (GetEnumQName): New.
470         (IsPrimitiveNotEnum): New.
471         (TryRegister): Add support for enums.
472         (RegisterEnum): New.
473
474 2006-08-14  Atsushi Enomoto  <atsushi@ximian.com>
475
476         * XmlFormatterSerializer.cs : (contd from my previous change)
477           ... and don't complain at WriteObject(). It is somehow required
478           in S.SM.D.WSTrustContract (soon to be committed).
479
480 2006-07-27  Ankit Jain  <jankit@novell.com>
481
482         * XsdDataContractImporter.cs (Compile): Remove, thanks to eno
483         XmlSchemaSet.Compile () works now.
484         Update to directly use XmlSchemaSet.Compile ()
485
486 2006-07-27  Ankit Jain  <jankit@novell.com>
487
488         * XsdDataContractImporter.cs (ImportInternal): New.
489         Update various overloads of Import to use this.
490         (ImportFromTypeMapping): New. Emits code for a DataContract from a
491         XmlTypeMapping. Code is duplicate of
492         ServiceContractGenerator.ExportDataContract .
493         (GetNamespace): New. Duplicate like above.
494         (Compile): New. Temporary hack, will XmlSchemaSet.Compile is not
495         working.
496
497 2006-07-18  Atsushi Enomoto  <atsushi@ximian.com>
498
499         * XmlFormatterSerializer.cs, KnownTypeCollection.cs :
500           don't raise an error at DataContractSerializer..ctor(). Raise
501           InvalidDataContractException on WriteObject().
502
503 2006-07-12  Ankit Jain  <jankit@novell.com>
504
505         * SerializationMap.cs (XmlSerializableMap): New. Map for classes which
506         implement IXmlSerializable interface.
507         * KnownTypeCollection.cs (KnownTypeCollection.GetQName): Add support for
508         types which implement IXmlSerializable interface. Change the order in
509         which DataContractAttribute/IXmlSerializable/SerializableAttribute get
510         selected.
511         (KnownTypeCollection.TryRegister): Change the order like above.
512         (KnownTypeCollection.RegisterIXmlSerializable): New.
513
514 2006-07-04  Atsushi Enomoto  <atsushi@ximian.com>
515
516         * XsdDataContractExporter.cs, XmlObjectSerializer.cs,
517           InvalidDataContractException.cs : some June CTP updates.
518
519 2006-07-04  Atsushi Enomoto  <atsushi@ximian.com>
520
521         * IDataContractSurrogate.cs, ExportOptions.cs,
522           DataContractSerializer.cs, KnownTypeCollection.cs :
523           June CTP updates.
524
525 2006-05-09  Atsushi Enomoto  <atsushi@ximian.com>
526
527         * DataContractSerializer.cs : null knownTypes argument is allowed.
528         * KnownTypeCollection.cs : Type.Namespace could be null.
529
530 2006-05-09  Atsushi Enomoto  <atsushi@ximian.com>
531
532         * KnownTypeCollection.cs : for nested classes, treat localName of
533           the QName as "Parent.Child", not "Child".
534           Don't encode name here (to pass ".").
535
536 2006-05-09  Atsushi Enomoto  <atsushi@ximian.com>
537
538         * DataContractSerializer.cs :
539           Added maxObjectsInGraph range check.
540           interface type has BaseType as null, so end base type check when
541           it is null (I don't think this check is required btw).
542
543 2006-04-05  Atsushi Enomoto  <atsushi@ximian.com>
544
545         * DataContractSerializer.cs : xmlns:xsi is not written when the
546           target type is string.
547
548 2006-03-22  Ankit Jain  <jankit@novell.com>
549
550         * SerializationMap.cs (CheckDataContractEqual): Remove.
551         (Deserialize): Allows expected type to be a derived one from actual
552         type.
553         (DeserializeInternal): Handle DataMember of type 'object'.
554         * XmlFormatterSerializer.cs (SerializeNonPrimitive): Serialize types not
555         already known.
556         * DataContractSerializer.cs (.ctor): Use KnownTypeCollection.GetQName
557         instead of doing it manually.
558         (PopulateTypes): Change return type from KnownTypeCollection to void.
559         Scan the base types to ensure that all have DataContract or Serializable
560         attributes.
561         Add all (including inherited) KnownTypeAttribute values to the
562         collection.
563
564 2006-03-18  Ankit Jain  <jankit@novell.com>
565
566         * SerializationMap.cs (SerializationMap.GetEmptyInstance): Rename to ..
567         (SerializationMap.GetInstance): .. this. Gets the instance or null if nil=true.
568         (SerializationMap.DeserializeInternal): New. Renamed from .. 
569         (SerializationMap.Deserialize): .. this. Check DataContract equivalence, and use new
570         DeserializeInternal for rest of the work.
571         (DeserializeContent): Cleanup and handle various "null" cases.
572         * XmlFormatterSerializer.cs (Write_i_type): New. Write i:type=".."
573         (SerializeNonPrimitive): Update to use Write_i_type.
574         * DataContractSerializer.cs (WriteStartObject): Add rootType to known_types.
575
576 2006-03-16  Ankit Jain  <jankit@novell.com>
577
578         * SerializationMap.cs (SerializationMap.Deserialize): Use NameTable.Get
579         before reader.LookupNamespace.
580         (DataMemberInfo.Compare): Use String.CompareOrdinal instead of
581         String.Compare.
582
583 2006-03-16  Ankit Jain  <jankit@novell.com>
584
585         * SerializationMap.cs (SerializationMap.GetEmptyInstance): New.
586         (SerializationMap.Deserialize): Refactor, handle primitive types and nils.
587         (SerializationMap.DeserializeContent): Handle nils and nested DataContracts.
588         (SharedContractMap.ctor): Include inherited properties and fields, in
589         the correct order.
590
591 2006-03-15  Ankit Jain  <jankit@novell.com>
592
593         * KnownTypeCollection.cs (IsPrimitiveType): New.
594         * SerializationMap.cs (Deserialize): Handle primitive types.
595
596 2006-03-15  Ankit Jain  <jankit@novell.com>
597
598         * DataContractSerializer.cs (WriteObjectContent): Handle null.
599         (WriteStartObject): Rewritten.
600         * KnownTypeCollection.cs (GetQName): New. Return QName for a given type.        
601         (GetContractQName):
602         (GetSerializableQName):
603         (GetCollectionQName): New.
604         (RegisterContract):
605         (RegisterSerializable):
606         (RegisterCollection): Update to use new Get* methods.
607         * SerializationMap.cs (CheckDataContractEqual): New.
608         (Deserialize): Split into this and ..
609         (DeserializeContent): .. this.
610         * XmlDictionaryWriter.cs (CreateTextWriter): Use UTF8Encoding.
611
612 2006-03-09  Atsushi Enomoto  <atsushi@ximian.com>
613
614         * DataContractSerializer.cs : xmlns output should be done at
615           WriteStartObject().
616
617 2006-03-08  Ankit Jain  <jankit@novell.com>
618
619         * DataContractSerializer.cs (.ctor): Use name & namespace specified (if any) 
620         with the DataContractAttribute for non-primitive types.
621         (DataContractSerializer.WriteStartObject): DataContractAttribute.Name
622         cannot be "".
623
624 2006-03-03  Atsushi Enomoto  <atsushi@ximian.com>
625
626         * DataContractSerializer.cs : Handle primitive type name rather than
627           raw type name in constructors that don't receive root QName.
628           In case the actual graph is not of root type, write xsi:type.
629
630 2006-03-02  Atsushi Enomoto  <atsushi@ximian.com>
631
632         * KnownTypeCollection.cs : default namespace contains common MS base
633           URI fragment.
634         * XmlObjectSerializer.cs : added internal common utility field.
635         * DataContractSerializer.cs : Fixed constructors to fill fields and
636           make it work.
637         * NetDataContractSerializer.cs : just leave it unimplemented until
638           we find how it works. It looks different from what
639           DataContractSerializer does.
640
641 2006-01-17  Atsushi Enomoto  <atsushi@ximian.com>
642
643         * XmlFormatter.cs : extra namespaces are not written in Dec.CTP.
644
645 2005-11-28  Atsushi Enomoto  <atsushi@ximian.com>
646
647         * KnownTypeCollection.cs : override.
648
649 2005-11-02  Atsushi Enomoto  <atsushi@ximian.com>
650
651         * SerializationMap.cs, XmlFormatterSerializer.cs, XmlFormatter.cs
652           XmlFormatterDeserializer.cs, KnownTypeCollection.cs :
653           several changes. Partial support for collection serialization.
654           SerializationMap now contains its own Deserialize()/Serialize()
655           methods.
656
657 2005-10-20  Atsushi Enomoto  <atsushi@ximian.com>
658
659         * XmlFormatterDeserializer.cs : new file.
660         * SerializationMap.cs, XmlFormatter.cs, KnownTypeCollection.cs :
661           several changes for pretty primitive Deserialize() implementation.
662
663 2005-10-07  Atsushi Enomoto  <atsushi@ximian.com>
664
665         Added hacky serialization feature. Actually it should be rewritten to
666         be based on IDataContractSurrogate.
667         * SerializationMap.cs, XmlFormatterSerializer.cs :
668           new files for Serialize() implementation.
669         * KnownTypeCollection.cs : use serialization maps to check contracts.
670         * XmlFormatter.cs : implemented hacky Serialize().
671         * DataMemberAttribute.cs : default Order is -1.
672         * DataContractAttribute.cs : added tiny comment.
673
674 2005-10-03  Atsushi Enomoto  <atsushi@ximian.com>
675
676         * XmlFormatter.cs : Added implementation switch between
677           BinaryFormatter and internal DataContractFormatter.
678         * XmlSerializableServices.cs : WriteNodes() impl.
679
680 2005-10-03  Atsushi Enomoto  <atsushi@ximian.com>
681
682         * XmlSerializableServices.cs : ReadNodes() impl.
683
684 2005-09-28  Atsushi Enomoto  <atsushi@ximian.com>
685
686         * KnownTypeAttribute.cs : fixed attribute usage.
687
688 2005-09-22  Atsushi Enomoto  <atsushi@ximian.com>
689
690         * IDataContractSurrogate.cs, ContractNamespaceAttribute.cs,
691           XsdDataContractExporter.cs, KnownTypeAttribute.cs,
692           SerializationMode.cs, XmlFormatter.cs, DataMemberAttribute.cs,
693           ImportOptions.cs, UnknownSerializationData.cs,
694           SerializationFactoryMethodAttribute.cs, XmlSerializableServices.cs,
695           DataContractAttribute.cs, ExportOptions.cs,
696           InvalidDataContractException.cs, IUnknownSerializationData.cs,
697           CollectionDataContractAttribute.cs, XsdDataContractImporter.cs,
698           KnownTypeCollection.cs :
699           #if NET_2_0. coding style was updated.
700
701 2005-09-22  Atsushi Enomoto  <atsushi@ximian.com>
702
703         * CollectionDataContractAttribute.cs
704           ContractNamespaceAttribute.cs
705           DataContractAttribute.cs
706           DataMemberAttribute.cs
707           ExportOptions.cs
708           IDataContractSurrogate.cs
709           InvalidDataContractException.cs
710           IUnknownSerializationData.cs
711           ImportOptions.cs
712           KnownTypeAttribute.cs
713           KnownTypeCollection.cs
714           SerializationFactoryMethodAttribute.cs
715           SerializationMode.cs
716           UnknownSerializationData.cs
717           XmlFormatter.cs
718           XmlSerializableServices.cs
719           XsdDataContractExporter.cs
720           XsdDataContractImporter.cs : new files.
721