djstein.com | projects | XMLConfig
XMLConfig
Abstract: XMLConfig is an XML serialization API for the .Net platform with some advantages over the XmlSerializer built into .Net. for example:
- XMLConfig is a hybrid serializer. Standardized types (primitive types, strings, standard collections, and objects) are serialized using a human-readable, structured XML syntax. Non-serializable objects (e.g., Bitmaps) are serialized as binary objects (using the standard .Net BinarySerializer), and are then included in the regular XML structure of the object set as CDATA. This is a vast improvement over the standard .Net serializers, which are either entirely XML or entirely binary.
- XMLConfig can serialize object sets that do not have a strictly hierarchical structure, such as object sets with circular references. This is a significant improvement over the .Net XML serializer, which cannot handle non-strictly-hierarchical data sets.
- XMLConfig serializes arrays, List objects, and Dictionary objects using the native hierarchical structure of the XML document. By contrast, the native XML serializer doesn't ues this efficient mechanism for arrays or List objects, and cannot serialize Dictionary objects at all.
- XMLConfig allows objects to participate in the serializion process by specifying whicih members are to be put into the XML document how such members are to be formatted (e.g., encrypting strings), and how the data in the XML document is to be transferred back into the members upon reading the class. (Moreover, the API makes this participation as simple as possible.) This degree of control enables more options than the native XML serializers, which are fully automated. For example, the XMLSerialize cannot access any private or protected class member, but because the XMLConfig relies on the class to handle the data transfer, private and protected members can easily be serialized alongside publicly accessible members.
Version: 1.0 - last updated Tuesday, May 10, 2011
Links: Download (Contents: Executable (Windows); Source Code (C#))
Screenshots: