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