requirements & concept:

- should be used like the .NET 2.0 XmlSerializer
- for small configurations or/and dto-objects
- should run on netmf-Fx (and maybe later on the big brother net-Fx)
- recursive (over cascaded classes) definable xml structure with classes as contract/ schema

serialization features/ constraints:

- enum-values are serialized with by value
- order sensitive related on elements
- DateTime-Format 'yyyy-MM-ddTHH:mm:ss+HH:mm' (e.g.: '2013-11-12T12:25:46.292+01:00') (ISO 8601-DateTime-Format:
- TimeOffset '+/-HH:mm' is ignored
- Booleans are translated as 'True' and 'False'
- floating point number splitter is '.'
- tolerant for missing and empty elements
- 'UTF-8' content-encoding
- no xml namespaces
- collection-serialization without (container-)parent-element (loosy) for:
- ArrayList and inherited classes
- overreads attributes
- hang in (de-)serialzation-process

supported (tested) system types (as mfMapSimpleElement):

- string
- int
- double
- bool
- DateTime
- CultureInfo


- to ignore an Property change (by hand) the serialization map after ctor invoke from XmlSerializer(Type targetType).
- all mfMapXYZElement-classes are serialized with there Name, except the root-element(/-map)


- no complex system type (de-)serializations, e.g. which are just instanciated over specialized ctor invoke
- no (de-)serialization support for array (SerializationType is prepared) and dictionary


- Hashtable (Dictionary) serialization
- implement native array serialization (SerializationType.Array)
- implement(&test) raw ArrayList (with Object as ItemType) class

Deployment space:

~85KB (System.Xml.Legacy, System.IO and System.Ext.xml 'MFDqwsExtensions.dll' included)
--> ~25KB for mfXmlSerializer (without references)


v.1.0 (09.01.2014):
rudimantal class serialziation support
v.1.1 (26.01.2014):
custom-array-list serialization support
v.1.2 (02.02.2014):
- DateTimeFormat ISO8601 compatible
- code comments added
- serialziation-process customization --> used in: rss version attribute serialization
v.1.3 (16.02.2014):
- Extension: Stream De-/Serialization in mfSerializer
- Refactor: rename 'mfXmlSerializer' 2 'mfXmlTypedSerializer'
v.1.3.1 (16.02.2014):
- BugFix: SerializeAsStream
v.1.3.2 (02.04.2014):
- BugFix: Check on EndElement in DeserializeClass
v.1.3.3 (07.04.2014):
- Extension: 'IDisposable' implementations
- Extension: SerializeOnStream in typed-serializer added
- Extension: 'void ExecuteSet(object target, string newValue)' added in mfMapBaseElement for direct invoke on target objects

Last edited Apr 17, 2014 at 2:49 PM by DStegmaier, version 12