1 2009-02-13 Atsushi Enomoto <atsushi@ximian.com>
3 * SerializationMap.cs, DataContractSerializer.cs,
4 KnownTypeCollection.cs : now .NET 3.5/SP1 supports non-contract
7 2009-02-13 Atsushi Enomoto <atsushi@ximian.com>
9 * SerializationMap.cs, KnownTypeCollection.cs : couple of refactoring
10 to simplify code base and handle CollectionDataContract namespace.
12 2009-02-13 Atsushi Enomoto <atsushi@ximian.com>
14 * SerializationMap.cs : oops, remove debug lines.
16 2009-02-13 Atsushi Enomoto <atsushi@ximian.com>
18 * DataContractSerializer.cs : remove extra writexmlns.
19 * SerializationMap.cs : allow DataMember of collection contract type
21 * KnownTypeCollection.cs : it was not iterating interfaces to find
22 IEnumerable<T> correctly.
24 2009-02-03 Atsushi Enomoto <atsushi@ximian.com>
26 * SerializationMap.cs : a bit more detailed error message.
28 2009-01-23 Atsushi Enomoto <atsushi@ximian.com>
30 * KnownTypeCollection.cs : similar fix to the previous one,
33 2009-01-22 Alan McGovern <amcgovern@novell.com>
35 * KnownTypeCollection.cs : The byte overload doesn't exist in
36 Silverlight, so cast the byte to an int instead.
38 2008-11-23 Atsushi Enomoto <atsushi@ximian.com>
40 * DataContractAttribute.cs : remove MonoTODO.
42 2008-11-23 Atsushi Enomoto <atsushi@ximian.com>
44 * SerializationMap.cs, XmlFormatterSerializer.cs,
45 XmlFormatterDeserializer.cs, DataContractAttribute.cs,
46 CollectionDataContractAttribute.cs, KnownTypeCollection.cs :
47 support IsReference (new in 3.5 SP1).
49 2008-11-23 Atsushi Enomoto <atsushi@ximian.com>
51 * DataContractSerializer.cs : remove extra type validity check.
53 2008-11-23 Atsushi Enomoto <atsushi@ximian.com>
55 * XmlFormatterSerializer.cs : one object could not be serialized
56 twice in non-circular situation.
58 2008-09-09 Atsushi Enomoto <atsushi@ximian.com>
59 Jb Evain <jbevain@novell.com>
61 * IDataContractSurrogater.cs, SerializationMap.cs:
62 add support to build on the net_2_1 profile.
64 2008-06-19 Noam Lampert <noaml@mainsoft.com>
66 * KnownTypeCollection.cs: Support anyUri type
68 2008-06-05 Noam Lampert <noaml@mainsoft.com>
70 * KnownTypeCollection.cs: Support XmlRoot attribute
72 2008-06-01 Noam Lampert <noaml@mainsoft.com>
74 * KnownTypeCollection.cs: Implement byte[] serialization.
76 2008-05-19 Noam Lampert <noaml@mainsoft.com>
78 * KnownTypeCollection.cs: Implement char serialization.
80 2008-05-19 Noam Lampert <noaml@mainsoft.com>
82 * KnownTypeCollection.cs, XmlFormatterDeserializer.cs: Imporve support for
83 Nullable types in contracts.
85 2008-04-29 Eyal Alaluf <eyala@mainsoft.com>
87 * KnownTypeCollection.cs: Fixed a typo in long conversion.
89 2008-04-17 Eyal Alaluf <eyala@mainsoft.com>
91 * SerializationMap.cs: Implement partially collections deserialization.
92 Supports arrays and types derived from IList. Needs support for calling
93 'Add' method and for dictionaries.
94 * SerializationMap.cs XmlFormatterSerializer.cs DataContractSerializer.cs:
95 Serialize namespaces for base members according to base class namespace.
97 2008-04-14 Eyal Alaluf <eyala@mainsoft.com>
99 * SerializationMap.cs: Use FormatterServices.GetUninitializedObject instead
100 of Activator.CreateInstance.
102 2008-04-10 Eyal Alaluf <eyala@mainsoft.com>
104 * DataContractSerializer.cs: Write and register the current type namespace
106 * XmlObjectSerializer.cs: ReadObject verifies by default.
107 * XmlFormatterSerializer.cs: Write and register XML namespaces.
108 * XmlFormatterDeserializer.cs: Refactored so Deserialize instance method can
109 be used from SerializationMap deserialization logic recursively.
110 * SerializationMap.cs: Reimplemented main deserialization logic. Now it
111 handles better missing entries, consumes the XmlReader until the end
112 element and handles XML namespaces correctly.
113 Enabled checks for required fields.
115 2008-02-27 Eyal Alaluf <eyala@mainsoft.com>
117 * SerializationMap.cs: Fix namespace logic at least in simple case where
118 there are several unknown elements before the current element.
119 * ContractNamespaceAttribute.cs: The ClrNamespace is not set by the ctor.
120 * XmlObjectSerializer.cs: Dispose the XmlWriter created in WriteObject
122 * DataMemberAttribute.cs: Added the EmitDefaultValue property.
123 * XsdDataContractImporter.cs: Handle null arguments in Import methods.
124 * KnownTypeCollection.cs: Use XmlConvert.ToDateTime with roundtrip style.
126 2007-12-05 Atsushi Enomoto <atsushi@ximian.com>
128 * XmlObjectSerializer.cs : some methods became virtual (in Redbits).
129 * DataContractSerializer.cs : added some overriden methods in Redbits.
130 knownTypes can be null in .ctor().
132 2007-08-17 Atsushi Enomoto <atsushi@ximian.com>
134 * SerializationMap.cs : for void it cannot be instantiated. Return
137 2007-08-17 Atsushi Enomoto <atsushi@ximian.com>
139 * XmlFormatterDeserializer.cs DataContractSerializer.cs :
140 uhoh, the semantic of bool parameter in ReadObject() has
141 changed in the RTM. Implemented it as verifyObjectName.
143 2007-03-27 Atsushi Enomoto <atsushi@ximian.com>
145 * SerializationMap.cs
146 XmlFormatterSerializer.cs
147 DataContractSerializer.cs :
148 now it needs some mess to handle serialization namespaces.
149 Collection items are serialized in its own xml namespace. Others,
150 (including the collection member itself) is serialized in its
151 parent xml namespace. Collection items are serialized with its
153 * XsdDataContractImporter.cs : use constant.
155 2007-03-26 Atsushi Enomoto <atsushi@ximian.com>
157 * KnownTypeCollection.cs : added support for Guid serialization.
159 2006-10-20 Atsushi Enomoto <atsushi@ximian.com>
161 * KnownTypeCollection.cs : (RemoveItem) don't remove items while
164 2006-09-06 Ankit Jain <jankit@novell.com>
166 * SerializationMap.cs (SerializationMap.GetSequence): Set minOccurs = 0
168 2006-09-05 Ankit Jain <jankit@novell.com>
170 * XsdDataContractExporter.cs (XsdDataContractExporter.MSTypesSchema):
171 Load resource mstypes.schema
172 (XsdDataContractExporter.Schemas): Add MSTypesSchema by default.
174 2006-09-05 Ankit Jain <jankit@novell.com>
176 * SerializationMap.cs (SerializationMap.AddImport): New.
177 (SerializationMap.GetSequence): Use AddImport.
179 2006-09-04 Ankit Jain <jankit@novell.com>
181 * SerializationMap.cs (SerializationMap.GetSchemaSet): Remove.
182 (SerializationMap.GetSchemaType):
183 (SerializationMap.GetSequence):
184 (SerializationMap.GetSchema): Change XmlSchemas param to XmlSchemaSet.
185 Call XmlSchemaSet.Reprocess whenever an existing schema is modified.
186 * XsdDataContractExporter.cs (XsdDataContractExporter.Export): Update to
187 changes in SerializationMap.
188 (XsdDataContractExporter.CanExport): Implement.
189 (XsdDataContractExporter.GetSchemaType): Implement.
190 (XsdDataContractExporter.GetSchemaTypeName): Implement.
191 (XsdDataContractExporter.KnownTypes): New.
192 (XsdDataContractExporter.GeneratedTypes): New.
194 2006-09-01 Ankit Jain <jankit@novell.com>
196 * SerializationMap.cs (SerializationMap.GetSchemaSet): New.
197 (SerializationMap.IsPrimitive): New.
198 (SerializationMap.GetSchemaType): New.
199 (SerializationMap.GetSequence): New.
200 (SerializationMap.GetMembers): New.
201 (SerializationMap.GetSchemaElement): New.
202 (SerializationMap.GetSchema): New.
203 (SerializationMap.GetQualifiedName): New.
204 New methods for exporting schema for the type.
206 (SharedContractMap.ctor): Move code for building Members list to ..
207 (SharedContractMap.GetMembers): .. here.
209 (CollectionTypeMap.Serialize): Mark 'override'.
210 (CollectionTypeMap.GetMembers): 'override' and throw
211 NotImplementedException.
212 (CollectionTypeMap.GetSchemaType): Implement.
214 (SharedTypeMap..ctor): Move code to ..
215 (SharedTypeMap.GetMembers): .. here.
216 (EnumMap.GetSchemaType): Implement.
218 * XsdDataContractExporter.cs (XsdDataContractExporter.Export):
220 * KnownTypeCollection.cs (KnownTypeCollection.GetCollectionQName): Use
221 GetQName instead of GetXmlName. Set Namespace for collections of
222 primitive types to MSArraysNamespace
224 2006-08-31 Ankit Jain <jankit@novell.com>
226 * SerializationMap.cs (EnumMap): New. For de/serializing enums.
227 (EnumMemberInfo): New.
228 (SerializationMap.DeserializeContent): Made protected virtual from private.
229 * DataContractSerializer.cs (WriteStartObject):
230 Ensure that "i:type" is not emitted for enums.
231 * KnownTypeCollection.cs (GetPrimitiveTypeName): Don't treat enum as a
233 (GetQName): Likewise. Use GetEnumQName for enums.
235 (IsPrimitiveNotEnum): New.
236 (TryRegister): Add support for enums.
239 2006-08-14 Atsushi Enomoto <atsushi@ximian.com>
241 * XmlFormatterSerializer.cs : (contd from my previous change)
242 ... and don't complain at WriteObject(). It is somehow required
243 in S.SM.D.WSTrustContract (soon to be committed).
245 2006-07-27 Ankit Jain <jankit@novell.com>
247 * XsdDataContractImporter.cs (Compile): Remove, thanks to eno
248 XmlSchemaSet.Compile () works now.
249 Update to directly use XmlSchemaSet.Compile ()
251 2006-07-27 Ankit Jain <jankit@novell.com>
253 * XsdDataContractImporter.cs (ImportInternal): New.
254 Update various overloads of Import to use this.
255 (ImportFromTypeMapping): New. Emits code for a DataContract from a
256 XmlTypeMapping. Code is duplicate of
257 ServiceContractGenerator.ExportDataContract .
258 (GetNamespace): New. Duplicate like above.
259 (Compile): New. Temporary hack, will XmlSchemaSet.Compile is not
262 2006-07-18 Atsushi Enomoto <atsushi@ximian.com>
264 * XmlFormatterSerializer.cs, KnownTypeCollection.cs :
265 don't raise an error at DataContractSerializer..ctor(). Raise
266 InvalidDataContractException on WriteObject().
268 2006-07-12 Ankit Jain <jankit@novell.com>
270 * SerializationMap.cs (XmlSerializableMap): New. Map for classes which
271 implement IXmlSerializable interface.
272 * KnownTypeCollection.cs (KnownTypeCollection.GetQName): Add support for
273 types which implement IXmlSerializable interface. Change the order in
274 which DataContractAttribute/IXmlSerializable/SerializableAttribute get
276 (KnownTypeCollection.TryRegister): Change the order like above.
277 (KnownTypeCollection.RegisterIXmlSerializable): New.
279 2006-07-04 Atsushi Enomoto <atsushi@ximian.com>
281 * XsdDataContractExporter.cs, XmlObjectSerializer.cs,
282 InvalidDataContractException.cs : some June CTP updates.
284 2006-07-04 Atsushi Enomoto <atsushi@ximian.com>
286 * IDataContractSurrogate.cs, ExportOptions.cs,
287 DataContractSerializer.cs, KnownTypeCollection.cs :
290 2006-05-09 Atsushi Enomoto <atsushi@ximian.com>
292 * DataContractSerializer.cs : null knownTypes argument is allowed.
293 * KnownTypeCollection.cs : Type.Namespace could be null.
295 2006-05-09 Atsushi Enomoto <atsushi@ximian.com>
297 * KnownTypeCollection.cs : for nested classes, treat localName of
298 the QName as "Parent.Child", not "Child".
299 Don't encode name here (to pass ".").
301 2006-05-09 Atsushi Enomoto <atsushi@ximian.com>
303 * DataContractSerializer.cs :
304 Added maxObjectsInGraph range check.
305 interface type has BaseType as null, so end base type check when
306 it is null (I don't think this check is required btw).
308 2006-04-05 Atsushi Enomoto <atsushi@ximian.com>
310 * DataContractSerializer.cs : xmlns:xsi is not written when the
311 target type is string.
313 2006-03-22 Ankit Jain <jankit@novell.com>
315 * SerializationMap.cs (CheckDataContractEqual): Remove.
316 (Deserialize): Allows expected type to be a derived one from actual
318 (DeserializeInternal): Handle DataMember of type 'object'.
319 * XmlFormatterSerializer.cs (SerializeNonPrimitive): Serialize types not
321 * DataContractSerializer.cs (.ctor): Use KnownTypeCollection.GetQName
322 instead of doing it manually.
323 (PopulateTypes): Change return type from KnownTypeCollection to void.
324 Scan the base types to ensure that all have DataContract or Serializable
326 Add all (including inherited) KnownTypeAttribute values to the
329 2006-03-18 Ankit Jain <jankit@novell.com>
331 * SerializationMap.cs (SerializationMap.GetEmptyInstance): Rename to ..
332 (SerializationMap.GetInstance): .. this. Gets the instance or null if nil=true.
333 (SerializationMap.DeserializeInternal): New. Renamed from ..
334 (SerializationMap.Deserialize): .. this. Check DataContract equivalence, and use new
335 DeserializeInternal for rest of the work.
336 (DeserializeContent): Cleanup and handle various "null" cases.
337 * XmlFormatterSerializer.cs (Write_i_type): New. Write i:type=".."
338 (SerializeNonPrimitive): Update to use Write_i_type.
339 * DataContractSerializer.cs (WriteStartObject): Add rootType to known_types.
341 2006-03-16 Ankit Jain <jankit@novell.com>
343 * SerializationMap.cs (SerializationMap.Deserialize): Use NameTable.Get
344 before reader.LookupNamespace.
345 (DataMemberInfo.Compare): Use String.CompareOrdinal instead of
348 2006-03-16 Ankit Jain <jankit@novell.com>
350 * SerializationMap.cs (SerializationMap.GetEmptyInstance): New.
351 (SerializationMap.Deserialize): Refactor, handle primitive types and nils.
352 (SerializationMap.DeserializeContent): Handle nils and nested DataContracts.
353 (SharedContractMap.ctor): Include inherited properties and fields, in
356 2006-03-15 Ankit Jain <jankit@novell.com>
358 * KnownTypeCollection.cs (IsPrimitiveType): New.
359 * SerializationMap.cs (Deserialize): Handle primitive types.
361 2006-03-15 Ankit Jain <jankit@novell.com>
363 * DataContractSerializer.cs (WriteObjectContent): Handle null.
364 (WriteStartObject): Rewritten.
365 * KnownTypeCollection.cs (GetQName): New. Return QName for a given type.
367 (GetSerializableQName):
368 (GetCollectionQName): New.
370 (RegisterSerializable):
371 (RegisterCollection): Update to use new Get* methods.
372 * SerializationMap.cs (CheckDataContractEqual): New.
373 (Deserialize): Split into this and ..
374 (DeserializeContent): .. this.
375 * XmlDictionaryWriter.cs (CreateTextWriter): Use UTF8Encoding.
377 2006-03-09 Atsushi Enomoto <atsushi@ximian.com>
379 * DataContractSerializer.cs : xmlns output should be done at
382 2006-03-08 Ankit Jain <jankit@novell.com>
384 * DataContractSerializer.cs (.ctor): Use name & namespace specified (if any)
385 with the DataContractAttribute for non-primitive types.
386 (DataContractSerializer.WriteStartObject): DataContractAttribute.Name
389 2006-03-03 Atsushi Enomoto <atsushi@ximian.com>
391 * DataContractSerializer.cs : Handle primitive type name rather than
392 raw type name in constructors that don't receive root QName.
393 In case the actual graph is not of root type, write xsi:type.
395 2006-03-02 Atsushi Enomoto <atsushi@ximian.com>
397 * KnownTypeCollection.cs : default namespace contains common MS base
399 * XmlObjectSerializer.cs : added internal common utility field.
400 * DataContractSerializer.cs : Fixed constructors to fill fields and
402 * NetDataContractSerializer.cs : just leave it unimplemented until
403 we find how it works. It looks different from what
404 DataContractSerializer does.
406 2006-01-17 Atsushi Enomoto <atsushi@ximian.com>
408 * XmlFormatter.cs : extra namespaces are not written in Dec.CTP.
410 2005-11-28 Atsushi Enomoto <atsushi@ximian.com>
412 * KnownTypeCollection.cs : override.
414 2005-11-02 Atsushi Enomoto <atsushi@ximian.com>
416 * SerializationMap.cs, XmlFormatterSerializer.cs, XmlFormatter.cs
417 XmlFormatterDeserializer.cs, KnownTypeCollection.cs :
418 several changes. Partial support for collection serialization.
419 SerializationMap now contains its own Deserialize()/Serialize()
422 2005-10-20 Atsushi Enomoto <atsushi@ximian.com>
424 * XmlFormatterDeserializer.cs : new file.
425 * SerializationMap.cs, XmlFormatter.cs, KnownTypeCollection.cs :
426 several changes for pretty primitive Deserialize() implementation.
428 2005-10-07 Atsushi Enomoto <atsushi@ximian.com>
430 Added hacky serialization feature. Actually it should be rewritten to
431 be based on IDataContractSurrogate.
432 * SerializationMap.cs, XmlFormatterSerializer.cs :
433 new files for Serialize() implementation.
434 * KnownTypeCollection.cs : use serialization maps to check contracts.
435 * XmlFormatter.cs : implemented hacky Serialize().
436 * DataMemberAttribute.cs : default Order is -1.
437 * DataContractAttribute.cs : added tiny comment.
439 2005-10-03 Atsushi Enomoto <atsushi@ximian.com>
441 * XmlFormatter.cs : Added implementation switch between
442 BinaryFormatter and internal DataContractFormatter.
443 * XmlSerializableServices.cs : WriteNodes() impl.
445 2005-10-03 Atsushi Enomoto <atsushi@ximian.com>
447 * XmlSerializableServices.cs : ReadNodes() impl.
449 2005-09-28 Atsushi Enomoto <atsushi@ximian.com>
451 * KnownTypeAttribute.cs : fixed attribute usage.
453 2005-09-22 Atsushi Enomoto <atsushi@ximian.com>
455 * IDataContractSurrogate.cs, ContractNamespaceAttribute.cs,
456 XsdDataContractExporter.cs, KnownTypeAttribute.cs,
457 SerializationMode.cs, XmlFormatter.cs, DataMemberAttribute.cs,
458 ImportOptions.cs, UnknownSerializationData.cs,
459 SerializationFactoryMethodAttribute.cs, XmlSerializableServices.cs,
460 DataContractAttribute.cs, ExportOptions.cs,
461 InvalidDataContractException.cs, IUnknownSerializationData.cs,
462 CollectionDataContractAttribute.cs, XsdDataContractImporter.cs,
463 KnownTypeCollection.cs :
464 #if NET_2_0. coding style was updated.
466 2005-09-22 Atsushi Enomoto <atsushi@ximian.com>
468 * CollectionDataContractAttribute.cs
469 ContractNamespaceAttribute.cs
470 DataContractAttribute.cs
471 DataMemberAttribute.cs
473 IDataContractSurrogate.cs
474 InvalidDataContractException.cs
475 IUnknownSerializationData.cs
477 KnownTypeAttribute.cs
478 KnownTypeCollection.cs
479 SerializationFactoryMethodAttribute.cs
481 UnknownSerializationData.cs
483 XmlSerializableServices.cs
484 XsdDataContractExporter.cs
485 XsdDataContractImporter.cs : new files.