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