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