1 out of 1 rated this helpful - Rate this topic

System.Runtime.Serialization Namespace

The System.Runtime.Serialization namespace contains classes that can be used for serializing and deserializing objects.

Serialization is the process of converting an object or a graph of objects into a linear sequence of bytes for either storage or transmission to another location. Deserialization is the process of taking in stored information and recreating objects from it.

The ISerializable interface provides a way for classes to control their own serialization behavior. Classes in the System.Runtime.Serialization.Formatters namespace control the actual formatting of various data types encapsulated in the serialized objects.

Data Contract Classes

Two notable classes of this namespace are the DataContractAttribute and DataMemberAttribute attribute classes. Apply these attributes (to classes and class members respectively) when creating services to specify which members of a class contain data that must be serialized. You can also apply the EnumMemberAttribute to enumeration members to control the generated XML. And apply the CollectionDataContractAttribute to collection classes to control the XML elements generated from collections (such as key name and value name for).

Data Contract Serialization

Another major class is the DataContractSerializer. Use this class to serialize or deserialize instances of classes that have the DataContractAttribute and DataMemberAttribute applied.

To create code from XSD schema documents, use the XsdDataContractImporter. With the class, you can read an XSD document, and generate System.CodeDom components that can be used to generate Visual Basic or Visual C# source code tailored to handling XML data.

Conversely, to create XSD schema documents from CLR classes, use the XsdDataContractExporter. You can provide an assembly as input, and export XSD schemas that can be used by other services to create interoperable XML messages.

  Class Description
Public class CollectionDataContractAttribute When applied to a collection type, enables custom specification of the collection item elements. This attribute can be applied only to types that are recognized by the DataContractSerializer as valid, serializable collections.
Public class ContractNamespaceAttribute Specifies the CLR namespace and XML namespace of the data contract.
Public class DataContractAttribute Specifies that the type defines or implements a data contract and is serializable by a serializer, such as the DataContractSerializer. To make their type serializable, type authors must define a data contract for their type.
Public class DataContractResolver Provides a mechanism for dynamically mapping types to and from xsi:type representations during serialization and deserialization.
Public class DataContractSerializer Serializes and deserializes an instance of a type into an XML stream or document using a supplied data contract. This class cannot be inherited.
Public class DataMemberAttribute When applied to the member of a type, specifies that the member is part of a data contract and is serializable by the DataContractSerializer.
Public class EnumMemberAttribute Specifies that the field is an enumeration member and should be serialized.
Public class ExportOptions Represents the options that can be set for an XsdDataContractExporter.
Public class ExtensionDataObject Stores data from a versioned data contract that has been extended by adding new members.
Public class Formatter Provides base functionality for the common language runtime serialization formatters.
Public class FormatterConverter Represents a base implementation of the IFormatterConverter interface that uses the Convert class and the IConvertible interface.
Public class FormatterServices Provides static methods to aid with the implementation of a Formatter for serialization. This class cannot be inherited.
Public class IgnoreDataMemberAttribute When applied to the member of a type, specifies that the member is not part of a data contract and is not serialized.
Public class ImportOptions Represents the options that can be set on an XsdDataContractImporter.
Public class InvalidDataContractException The exception that is thrown when the DataContractSerializer or NetDataContractSerializer encounters an invalid data contract during serialization and deserialization.
Public class KnownTypeAttribute Specifies types that should be recognized by the DataContractSerializer when serializing or deserializing a given type.
Public class NetDataContractSerializer Serializes and deserializes an instance of a type into XML stream or document using the supplied .NET Framework types. This class cannot be inherited.
Public class ObjectIDGenerator Generates IDs for objects.
Public class ObjectManager Keeps track of objects as they are deserialized.
Public class OnDeserializedAttribute When applied to a method, specifies that the method is called immediately after deserialization of an object in an object graph. The order of deserialization relative to other objects in the graph is non-deterministic.
Public class OnDeserializingAttribute When applied to a method, specifies that the method is called during deserialization of an object in an object graph. The order of deserialization relative to other objects in the graph is non-deterministic.
Public class OnSerializedAttribute When applied to a method, specifies that the method is called after serialization of an object in an object graph. The order of serialization relative to other objects in the graph is non-deterministic.
Public class OnSerializingAttribute When applied to a method, specifies that the method is during serialization of an object in an object graph. The order of serialization relative to other objects in the graph is non-deterministic.
Public class OptionalFieldAttribute Specifies that a field can be missing from a serialization stream so that the BinaryFormatter and the SoapFormatter does not throw an exception.
Public class SafeSerializationEventArgs Provides data for the SerializeObjectState event.
Public class SerializationBinder Allows users to control class loading and mandate what class to load.
Public class SerializationException The exception thrown when an error occurs during serialization or deserialization.
Public class SerializationInfo Stores all the data needed to serialize or deserialize an object. This class cannot be inherited.
Public class SerializationInfoEnumerator Provides a formatter-friendly mechanism for parsing the data in SerializationInfo. This class cannot be inherited.
Public class SerializationObjectManager Manages serialization processes at run time. This class cannot be inherited.
Public class SurrogateSelector Assists formatters in selection of the serialization surrogate to delegate the serialization or deserialization process to.
Public class XmlObjectSerializer Provides the base class used to serialize objects as XML streams or documents. This class is abstract.
Public class XmlSerializableServices Contains methods for reading and writing XML.
Public class XPathQueryGenerator When given a class representing a data contract, and metadata representing a member of the contract, produces an XPath query for the member.
Public class XsdDataContractExporter Allows the transformation of a set of .NET Framework types that are used in data contracts into an XML schema file (.xsd).
Public class XsdDataContractImporter Allows the transformation of a set of XML schema files (.xsd) into common language runtime (CLR) types.
  Structure Description
Public structure SerializationEntry Holds the value, Type, and name of a serialized object.
Public structure StreamingContext Describes the source and destination of a given serialized stream, and provides an additional caller-defined context.
  Interface Description
Public interface IDataContractSurrogate Provides the methods needed to substitute one type for another by the DataContractSerializer during serialization, deserialization, and export and import of XML schema documents (XSD).
Public interface IDeserializationCallback Indicates that a class is to be notified when deserialization of the entire object graph has been completed.
Public interface IExtensibleDataObject Provides a data structure to store extra data encountered by the XmlObjectSerializer during deserialization of a type marked with the DataContractAttribute attribute.
Public interface IFormatter Provides functionality for formatting serialized objects.
Public interface IFormatterConverter Provides the connection between an instance of SerializationInfo and the formatter-provided class best suited to parse the data inside the SerializationInfo.
Public interface IObjectReference Indicates that the current interface implementer is a reference to another object.
Public interface ISafeSerializationData Enables serialization of custom exception data in security-transparent code.
Public interface ISerializable Allows an object to control its own serialization and deserialization.
Public interface ISerializationSurrogate Implements a serialization surrogate selector that allows one object to perform serialization and deserialization of another.
Public interface ISurrogateSelector Indicates a serialization surrogate selector class.
  Enumeration Description
Public enumeration StreamingContextStates Defines a set of flags that specifies the source or destination context for the stream during serialization.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ