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