Wed Feb 24 15:47:16 CET 2010 Paolo Molaro <lupus@ximian.com>
[mono.git] / mcs / class / System.Runtime.Serialization / System.Runtime.Serialization / ChangeLog
1 2010-02-19  Atsushi Enomoto  <atsushi@ximian.com>
2
3         * XsdDataContractImporter.cs : fix extension type name (and comment).
4
5 2010-02-19  Atsushi Enomoto  <atsushi@ximian.com>
6
7         * XsdDataContractImporter.cs : added dictionary support.
8
9 2010-02-18  Atsushi Enomoto  <atsushi@ximian.com>
10
11         * XsdDataContractImporter-new.cs, XsdDataContractImporter.cs :
12           replaced implementation.
13         * ImportOptions.cs : add correct MonoTODOs.
14
15 2010-02-18  Atsushi Enomoto  <atsushi@ximian.com>
16
17         * XsdDataContractImporter-new.cs : output [KnownType] to expose
18           base/derived type relationship.
19
20 2010-02-18  Atsushi Enomoto  <atsushi@ximian.com>
21
22         * XsdDataContractImporter-new.cs : fix GenerateInternal.
23
24 2010-02-17  Atsushi Enomoto  <atsushi@ximian.com>
25
26         * XsdDataContractImporter-new.cs : refresh implementation that is
27           not based on xml serialization. Not enabled yet.
28         * KnownTypeCollection.cs : add cosmetic comment.
29
30 2010-02-09  Atsushi Enomoto  <atsushi@ximian.com>
31
32         * XsdDataContractImporter.cs : add appropriate code namespaces
33           imported from xsd namespace.
34
35 2010-02-08  Atsushi Enomoto  <atsushi@ximian.com>
36
37         * XsdDataContractImporter.cs : do not add primitive ArrayOfxxx types.
38
39 2010-02-08  Atsushi Enomoto  <atsushi@ximian.com>
40
41         * XsdDataContractImporter.cs : some generated attributes are put
42           on enums too.
43
44 2010-01-25  Atsushi Enomoto  <atsushi@ximian.com>
45
46         * SerializationMap.cs : allow readonly field as data member.
47           Fixed bug #560155.
48
49 2010-01-08  Atsushi Enomoto  <atsushi@ximian.com>
50
51         * SerializationMap.cs, KnownTypeCollection.cs : differentiate
52           [DataContract(Namespace=null)] and [DataContract(Namespace="")].
53           Fixed bug #568763.
54
55 2009-12-01  Sebastien Pouliot  <sebastien@ximian.com>
56
57         * DataContractSerializer.cs: Add two missing methods for FX3.0 
58         and SL2/SL3.
59
60 2009-10-22  Atsushi Enomoto  <atsushi@ximian.com>
61
62         * SerializationMap.cs : partly revert previous sorting fix in
63           Sep.28th. Do not sort and mix members in base and derived types.
64           Fixed bug #546238.
65
66 2009-10-21  Jb Evain  <jbevain@novell.com>
67
68         * SerializationMap.cs, KnownTypeCollection.cs: avoid using LINQ
69         on arrays as MonoTouch has issues with them.
70
71 2009-09-28  Atsushi Enomoto  <atsushi@ximian.com>
72
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.
78
79 2009-09-28  Atsushi Enomoto  <atsushi@ximian.com>
80
81         * KnownTypeCollection.cs : (the previous one didn't fix #539563.)
82           Consider attempts to register the same collection type as it did
83           before.
84
85 2009-09-28  Atsushi Enomoto  <atsushi@ximian.com>
86
87         * SerializationMap.cs, KnownTypeCollection.cs : nested use of type
88           in its members resulted in infinite loop. This hopefully fixes
89           bug #539563.
90
91 2009-09-07  Atsushi Enomoto  <atsushi@ximian.com>
92
93         * IgnoreDataMemberAttribute.cs : add missing type.
94         * SerializationMap.cs : support above.
95
96 2009-07-23  Sebastien Pouliot  <sebastien@ximian.com>
97
98         * SerializationMap.cs : Ensure Dictionary is still deserialized
99         correctly (wrt previous change). Fix moonlight isolated storage
100         settings.
101
102 2009-07-22  Atsushi Enomoto  <atsushi@ximian.com>
103
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.
108
109 2009-07-22  Atsushi Enomoto  <atsushi@ximian.com>
110
111         * XmlFormatterDeserializer.cs : when reading empty primitive value,
112           make sure to consume the reader. Fixed bug #524083.
113
114 2009-07-22  Atsushi Enomoto  <atsushi@ximian.com>
115
116         * SerializationMap.cs : call MoveToContent() before examining
117           the reader node type.
118
119 2009-07-22  Atsushi Enomoto  <atsushi@ximian.com>
120
121         * KnownTypeCollection.cs : Find KnownTypeAttributes in base types
122           too. Patch by Rolf Bjarne Kvinge. Fixed bug #524088.
123
124 2009-07-21  Atsushi Enomoto  <atsushi@ximian.com>
125
126         * DataContractSerializer.cs : it does not write dictionary string
127           when it was not created with it.
128
129 2009-07-07  Atsushi Enomoto  <atsushi@ximian.com>
130
131         * XmlFormatterDeserializer.cs, SerializationMap.cs : IXmlSerializable
132           were not deserialized correctly as it has mismatch on wrapper
133           element. This fixes PeerNodeAddress.EndpointAddress deserialization.
134
135 2009-06-26  Atsushi Enomoto  <atsushi@ximian.com>
136
137         * XmlFormatterDeserializer.cs : verifyObjectName rather blocked
138           correct names provided as the root names.
139
140 2009-06-01  Atsushi Enomoto  <atsushi@ximian.com>
141
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.
146
147 2009-05-28  Atsushi Enomoto  <atsushi@ximian.com>
148
149         * SerializationMap.cs : for default / shared type map, members are
150           serialized in alphabetical order.
151
152 2009-05-28  Atsushi Enomoto  <atsushi@ximian.com>
153
154         * SerializationMap.cs : generic interface search has to be more
155           complicated. Give kind error message on setting deserialized value.
156
157 2009-05-28  Atsushi Enomoto  <atsushi@ximian.com>
158
159         * SerializationMap.cs: collection interface cannot be instantiated,
160           so create List<T> (generic) or ArrayList (non-generic) instead.
161
162 2009-05-25  Atsushi Enomoto  <atsushi@ximian.com>
163
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.
167
168 2009-05-18  Atsushi Enomoto  <atsushi@ximian.com>
169
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.
174
175 2009-05-18  Atsushi Enomoto  <atsushi@ximian.com>
176
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).
181
182 2009-05-18  Atsushi Enomoto  <atsushi@ximian.com>
183
184         * SerializationMap.cs : it was only about 2.1. Fix build.
185
186 2009-05-18  Atsushi Enomoto  <atsushi@ximian.com>
187
188         * SerializationMap.cs : It is not possible to get schema without
189           IXmlSerializable instance.
190
191 2009-05-15  Atsushi Enomoto  <atsushi@ximian.com>
192
193         * DataContractSerializer.cs : write dictionary string directly for
194           root name/ns (root only, so far).
195
196 2009-05-14  Atsushi Enomoto  <atsushi@ximian.com>
197
198         * SerializationMap.cs: interface collection failed to serialize as
199           it was calling inappropriate GetInterfaceMap().
200
201 2009-04-01  Atsushi Enomoto  <atsushi@ximian.com>
202
203         * XmlFormatterDeserializer.cs : more hack to handle empty
204           element nicely.
205
206 2009-03-24  Atsushi Enomoto  <atsushi@ximian.com>
207
208         * SerializationMap.cs, XmlFormatterDeserializer.cs:
209           empty collection deserialization resulted in extra
210           consumption of the next xml node.
211
212 2009-03-19  Atsushi Enomoto  <atsushi@ximian.com>
213
214         * KnownTypeCollection.cs, XmlFormatterDeserializer.cs :
215           to infer type from xml qname, consider DataContractAttribute
216           names.
217
218 2009-03-12  Atsushi Enomoto  <atsushi@ximian.com>
219
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
223
224 2009-03-12  Atsushi Enomoto  <atsushi@ximian.com>
225
226         * SerializationMap.cs, KnownTypeCollection.cs :
227           support CollectionDataContract-based dictionary too.
228
229 2009-03-12  Atsushi Enomoto  <atsushi@ximian.com>
230
231         * SerializationMap.cs, KnownTypeCollection.cs :
232           added support for dictionary serialization (not for
233           CollectionDataContract-attributed dictionary yet).
234
235 2009-03-12  Atsushi Enomoto  <atsushi@ximian.com>
236
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.
240
241 2009-03-11  Atsushi Enomoto  <atsushi@ximian.com>
242
243         * XmlFormatterSerializer.cs, XmlObjectSerializer.cs,
244           XmlFormatterDeserializer.cs, KnownTypeCollection.cs :
245           add more xsi:type to cover collection items.
246
247 2009-03-11  Atsushi Enomoto  <atsushi@ximian.com>
248
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.
252
253 2009-03-11  Atsushi Enomoto  <atsushi@ximian.com>
254
255         * SerializationMap.cs : eliminate whitespace misuses.
256
257 2009-03-11  Atsushi Enomoto  <atsushi@ximian.com>
258
259         * SerializationMap.cs : actually it could just be ICollection<T>.
260
261 2009-03-11  Atsushi Enomoto  <atsushi@ximian.com>
262
263         * SerializationMap.cs : implemented generic IList deserialization.
264
265 2009-03-10  Atsushi Enomoto  <atsushi@ximian.com>
266
267         * KnownTypeCollection.cs : fix for generic serialization.
268
269 2009-02-27  Atsushi Enomoto  <atsushi@ximian.com>
270
271         * SerializationMap.cs : look for unordered members first, in
272           different iteration. Got SL OpenStreetMap working.
273
274 2009-02-13  Atsushi Enomoto  <atsushi@ximian.com>
275
276         * SerializationMap.cs : remove use of non-2.1 CreateInstance().
277         * XmlFormatterDeserializer.cs : allow empty element.
278
279 2009-02-13  Atsushi Enomoto  <atsushi@ximian.com>
280
281         * SerializationMap.cs, DataContractSerializer.cs,
282           KnownTypeCollection.cs : now .NET 3.5/SP1 supports non-contract
283           type serialization.
284
285 2009-02-13  Atsushi Enomoto  <atsushi@ximian.com>
286
287         * SerializationMap.cs, KnownTypeCollection.cs : couple of refactoring
288           to simplify code base and handle CollectionDataContract namespace.
289
290 2009-02-13  Atsushi Enomoto  <atsushi@ximian.com>
291
292         * SerializationMap.cs : oops, remove debug lines.
293
294 2009-02-13  Atsushi Enomoto  <atsushi@ximian.com>
295
296         * DataContractSerializer.cs : remove extra writexmlns.
297         * SerializationMap.cs : allow DataMember of collection contract type
298           as read-only.
299         * KnownTypeCollection.cs : it was not iterating interfaces to find
300           IEnumerable<T> correctly.
301
302 2009-02-03  Atsushi Enomoto  <atsushi@ximian.com>
303
304         * SerializationMap.cs : a bit more detailed error message.
305
306 2009-01-23  Atsushi Enomoto  <atsushi@ximian.com>
307
308         * KnownTypeCollection.cs : similar fix to the previous one,
309           on uint16.
310
311 2009-01-22  Alan McGovern  <amcgovern@novell.com>
312
313         * KnownTypeCollection.cs : The byte overload doesn't exist in
314         Silverlight, so cast the byte to an int instead.
315
316 2008-11-23  Atsushi Enomoto  <atsushi@ximian.com>
317
318         * DataContractAttribute.cs : remove MonoTODO.
319
320 2008-11-23  Atsushi Enomoto  <atsushi@ximian.com>
321
322         * SerializationMap.cs, XmlFormatterSerializer.cs,
323           XmlFormatterDeserializer.cs, DataContractAttribute.cs,
324           CollectionDataContractAttribute.cs, KnownTypeCollection.cs :
325           support IsReference (new in 3.5 SP1).
326
327 2008-11-23  Atsushi Enomoto  <atsushi@ximian.com>
328
329         * DataContractSerializer.cs : remove extra type validity check.
330
331 2008-11-23  Atsushi Enomoto  <atsushi@ximian.com>
332
333         * XmlFormatterSerializer.cs : one object could not be serialized
334           twice in non-circular situation.
335
336 2008-09-09  Atsushi Enomoto  <atsushi@ximian.com>
337                         Jb Evain  <jbevain@novell.com>
338
339         * IDataContractSurrogater.cs, SerializationMap.cs:
340         add support to build on the net_2_1 profile.
341
342 2008-06-19  Noam Lampert <noaml@mainsoft.com>
343         
344         * KnownTypeCollection.cs: Support anyUri type
345
346 2008-06-05  Noam Lampert <noaml@mainsoft.com>
347         
348         * KnownTypeCollection.cs: Support XmlRoot attribute
349
350 2008-06-01  Noam Lampert <noaml@mainsoft.com>
351         
352         * KnownTypeCollection.cs: Implement byte[] serialization.
353
354 2008-05-19  Noam Lampert <noaml@mainsoft.com>
355         
356         * KnownTypeCollection.cs: Implement char serialization.
357            
358 2008-05-19  Noam Lampert <noaml@mainsoft.com>
359         
360         * KnownTypeCollection.cs, XmlFormatterDeserializer.cs: Imporve support for 
361            Nullable types in contracts.
362            
363 2008-04-29  Eyal Alaluf <eyala@mainsoft.com>
364
365         * KnownTypeCollection.cs: Fixed a typo in long conversion.
366
367 2008-04-17  Eyal Alaluf <eyala@mainsoft.com>
368
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.
374
375 2008-04-14  Eyal Alaluf <eyala@mainsoft.com>
376
377         * SerializationMap.cs: Use FormatterServices.GetUninitializedObject instead
378           of Activator.CreateInstance.
379
380 2008-04-10  Eyal Alaluf <eyala@mainsoft.com>
381
382         * DataContractSerializer.cs: Write and register the current type namespace
383           within the writer.
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.
392
393 2008-02-27  Eyal Alaluf <eyala@mainsoft.com>
394
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
399           to a stream.
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.
403
404 2007-12-05  Atsushi Enomoto  <atsushi@ximian.com>
405
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().
409
410 2007-08-17  Atsushi Enomoto  <atsushi@ximian.com>
411
412         * SerializationMap.cs : for void it cannot be instantiated. Return
413           null instead.
414
415 2007-08-17  Atsushi Enomoto  <atsushi@ximian.com>
416
417         * XmlFormatterDeserializer.cs DataContractSerializer.cs :
418           uhoh, the semantic of bool parameter in ReadObject() has
419           changed in the RTM. Implemented it as verifyObjectName.
420
421 2007-03-27  Atsushi Enomoto  <atsushi@ximian.com>
422
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
430           wrapping element.
431         * XsdDataContractImporter.cs : use constant.
432
433 2007-03-26  Atsushi Enomoto  <atsushi@ximian.com>
434
435         * KnownTypeCollection.cs : added support for Guid serialization.
436
437 2006-10-20  Atsushi Enomoto  <atsushi@ximian.com>
438
439         * KnownTypeCollection.cs : (RemoveItem) don't remove items while 
440           iterating.
441
442 2006-09-06  Ankit Jain  <jankit@novell.com>
443
444         * SerializationMap.cs (SerializationMap.GetSequence): Set minOccurs = 0
445
446 2006-09-05  Ankit Jain  <jankit@novell.com>
447
448         * XsdDataContractExporter.cs (XsdDataContractExporter.MSTypesSchema):
449         Load resource mstypes.schema
450         (XsdDataContractExporter.Schemas): Add MSTypesSchema by default.
451
452 2006-09-05  Ankit Jain  <jankit@novell.com>
453
454         * SerializationMap.cs (SerializationMap.AddImport): New.
455         (SerializationMap.GetSequence): Use AddImport.
456
457 2006-09-04  Ankit Jain  <jankit@novell.com>
458
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.
471
472 2006-09-01  Ankit Jain  <jankit@novell.com>
473
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.
483
484         (SharedContractMap.ctor): Move code for building Members list to ..
485         (SharedContractMap.GetMembers): .. here.
486
487         (CollectionTypeMap.Serialize): Mark 'override'.
488         (CollectionTypeMap.GetMembers): 'override' and throw
489         NotImplementedException.
490         (CollectionTypeMap.GetSchemaType): Implement.
491
492         (SharedTypeMap..ctor): Move code to ..
493         (SharedTypeMap.GetMembers): .. here.
494         (EnumMap.GetSchemaType): Implement.
495
496         * XsdDataContractExporter.cs (XsdDataContractExporter.Export):
497         Implement.
498         * KnownTypeCollection.cs (KnownTypeCollection.GetCollectionQName): Use
499         GetQName instead of GetXmlName. Set Namespace for collections of
500         primitive types to MSArraysNamespace
501
502 2006-08-31  Ankit Jain  <jankit@novell.com>
503
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
510         primitive type.
511         (GetQName): Likewise. Use GetEnumQName for enums.
512         (GetEnumQName): New.
513         (IsPrimitiveNotEnum): New.
514         (TryRegister): Add support for enums.
515         (RegisterEnum): New.
516
517 2006-08-14  Atsushi Enomoto  <atsushi@ximian.com>
518
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).
522
523 2006-07-27  Ankit Jain  <jankit@novell.com>
524
525         * XsdDataContractImporter.cs (Compile): Remove, thanks to eno
526         XmlSchemaSet.Compile () works now.
527         Update to directly use XmlSchemaSet.Compile ()
528
529 2006-07-27  Ankit Jain  <jankit@novell.com>
530
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
538         working.
539
540 2006-07-18  Atsushi Enomoto  <atsushi@ximian.com>
541
542         * XmlFormatterSerializer.cs, KnownTypeCollection.cs :
543           don't raise an error at DataContractSerializer..ctor(). Raise
544           InvalidDataContractException on WriteObject().
545
546 2006-07-12  Ankit Jain  <jankit@novell.com>
547
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
553         selected.
554         (KnownTypeCollection.TryRegister): Change the order like above.
555         (KnownTypeCollection.RegisterIXmlSerializable): New.
556
557 2006-07-04  Atsushi Enomoto  <atsushi@ximian.com>
558
559         * XsdDataContractExporter.cs, XmlObjectSerializer.cs,
560           InvalidDataContractException.cs : some June CTP updates.
561
562 2006-07-04  Atsushi Enomoto  <atsushi@ximian.com>
563
564         * IDataContractSurrogate.cs, ExportOptions.cs,
565           DataContractSerializer.cs, KnownTypeCollection.cs :
566           June CTP updates.
567
568 2006-05-09  Atsushi Enomoto  <atsushi@ximian.com>
569
570         * DataContractSerializer.cs : null knownTypes argument is allowed.
571         * KnownTypeCollection.cs : Type.Namespace could be null.
572
573 2006-05-09  Atsushi Enomoto  <atsushi@ximian.com>
574
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 ".").
578
579 2006-05-09  Atsushi Enomoto  <atsushi@ximian.com>
580
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).
585
586 2006-04-05  Atsushi Enomoto  <atsushi@ximian.com>
587
588         * DataContractSerializer.cs : xmlns:xsi is not written when the
589           target type is string.
590
591 2006-03-22  Ankit Jain  <jankit@novell.com>
592
593         * SerializationMap.cs (CheckDataContractEqual): Remove.
594         (Deserialize): Allows expected type to be a derived one from actual
595         type.
596         (DeserializeInternal): Handle DataMember of type 'object'.
597         * XmlFormatterSerializer.cs (SerializeNonPrimitive): Serialize types not
598         already known.
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
603         attributes.
604         Add all (including inherited) KnownTypeAttribute values to the
605         collection.
606
607 2006-03-18  Ankit Jain  <jankit@novell.com>
608
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.
618
619 2006-03-16  Ankit Jain  <jankit@novell.com>
620
621         * SerializationMap.cs (SerializationMap.Deserialize): Use NameTable.Get
622         before reader.LookupNamespace.
623         (DataMemberInfo.Compare): Use String.CompareOrdinal instead of
624         String.Compare.
625
626 2006-03-16  Ankit Jain  <jankit@novell.com>
627
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
632         the correct order.
633
634 2006-03-15  Ankit Jain  <jankit@novell.com>
635
636         * KnownTypeCollection.cs (IsPrimitiveType): New.
637         * SerializationMap.cs (Deserialize): Handle primitive types.
638
639 2006-03-15  Ankit Jain  <jankit@novell.com>
640
641         * DataContractSerializer.cs (WriteObjectContent): Handle null.
642         (WriteStartObject): Rewritten.
643         * KnownTypeCollection.cs (GetQName): New. Return QName for a given type.        
644         (GetContractQName):
645         (GetSerializableQName):
646         (GetCollectionQName): New.
647         (RegisterContract):
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.
654
655 2006-03-09  Atsushi Enomoto  <atsushi@ximian.com>
656
657         * DataContractSerializer.cs : xmlns output should be done at
658           WriteStartObject().
659
660 2006-03-08  Ankit Jain  <jankit@novell.com>
661
662         * DataContractSerializer.cs (.ctor): Use name & namespace specified (if any) 
663         with the DataContractAttribute for non-primitive types.
664         (DataContractSerializer.WriteStartObject): DataContractAttribute.Name
665         cannot be "".
666
667 2006-03-03  Atsushi Enomoto  <atsushi@ximian.com>
668
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.
672
673 2006-03-02  Atsushi Enomoto  <atsushi@ximian.com>
674
675         * KnownTypeCollection.cs : default namespace contains common MS base
676           URI fragment.
677         * XmlObjectSerializer.cs : added internal common utility field.
678         * DataContractSerializer.cs : Fixed constructors to fill fields and
679           make it work.
680         * NetDataContractSerializer.cs : just leave it unimplemented until
681           we find how it works. It looks different from what
682           DataContractSerializer does.
683
684 2006-01-17  Atsushi Enomoto  <atsushi@ximian.com>
685
686         * XmlFormatter.cs : extra namespaces are not written in Dec.CTP.
687
688 2005-11-28  Atsushi Enomoto  <atsushi@ximian.com>
689
690         * KnownTypeCollection.cs : override.
691
692 2005-11-02  Atsushi Enomoto  <atsushi@ximian.com>
693
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()
698           methods.
699
700 2005-10-20  Atsushi Enomoto  <atsushi@ximian.com>
701
702         * XmlFormatterDeserializer.cs : new file.
703         * SerializationMap.cs, XmlFormatter.cs, KnownTypeCollection.cs :
704           several changes for pretty primitive Deserialize() implementation.
705
706 2005-10-07  Atsushi Enomoto  <atsushi@ximian.com>
707
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.
716
717 2005-10-03  Atsushi Enomoto  <atsushi@ximian.com>
718
719         * XmlFormatter.cs : Added implementation switch between
720           BinaryFormatter and internal DataContractFormatter.
721         * XmlSerializableServices.cs : WriteNodes() impl.
722
723 2005-10-03  Atsushi Enomoto  <atsushi@ximian.com>
724
725         * XmlSerializableServices.cs : ReadNodes() impl.
726
727 2005-09-28  Atsushi Enomoto  <atsushi@ximian.com>
728
729         * KnownTypeAttribute.cs : fixed attribute usage.
730
731 2005-09-22  Atsushi Enomoto  <atsushi@ximian.com>
732
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.
743
744 2005-09-22  Atsushi Enomoto  <atsushi@ximian.com>
745
746         * CollectionDataContractAttribute.cs
747           ContractNamespaceAttribute.cs
748           DataContractAttribute.cs
749           DataMemberAttribute.cs
750           ExportOptions.cs
751           IDataContractSurrogate.cs
752           InvalidDataContractException.cs
753           IUnknownSerializationData.cs
754           ImportOptions.cs
755           KnownTypeAttribute.cs
756           KnownTypeCollection.cs
757           SerializationFactoryMethodAttribute.cs
758           SerializationMode.cs
759           UnknownSerializationData.cs
760           XmlFormatter.cs
761           XmlSerializableServices.cs
762           XsdDataContractExporter.cs
763           XsdDataContractImporter.cs : new files.
764