SALES: 1-800-867-1380
Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

DataContractSerializer Constructor (Type, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate)

Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type. This method also specifies a list of known types that may be present in the object graph, the maximum number of graph items to serialize, parameters to ignore unexpected data, whether to use non-standard XML constructs to preserve object reference data in the graph, and a surrogate for custom serialization.

Namespace:  System.Runtime.Serialization
Assembly:  System.Runtime.Serialization (in System.Runtime.Serialization.dll)

public DataContractSerializer(
	Type type,
	IEnumerable<Type> knownTypes,
	int maxItemsInObjectGraph,
	bool ignoreExtensionDataObject,
	bool preserveObjectReferences,
	IDataContractSurrogate dataContractSurrogate
)

Parameters

type
Type: System.Type

The type of the instances that are serialized or deserialized.

knownTypes
Type: System.Collections.Generic.IEnumerable<Type>

An IEnumerable<T> of Type that contains the known types that may be present in the object graph.

maxItemsInObjectGraph
Type: System.Int32

The maximum number of items in the graph to serialize or deserialize. The default is the value returned by the MaxValue property.

ignoreExtensionDataObject
Type: System.Boolean

true to ignore the data supplied by an extension of the type upon serialization and deserialization; otherwise, false.

preserveObjectReferences
Type: System.Boolean

true to use non-standard XML constructs to preserve object reference data; otherwise, false.

dataContractSurrogate
Type: System.Runtime.Serialization.IDataContractSurrogate

An implementation of the IDataContractSurrogate to customize the serialization process.

ExceptionCondition
ArgumentOutOfRangeException

The number of items exceeds the maximum value.

The following example creates an instance of the DataContractSerializer that specifies the type to serialize or deserialize and an instance of a IEnumerable<T> to contain the known types used during serialization or deserialization. The code also sets the ignoreExtensionDataObject and preserveObjectReferences parameters to true, and specifies an implementation of the IDataContractSurrogate interface to handle legacy types (types that do not have the DataContractAttribute attribute applied). For more information, see the IDataContractSurrogate documentation.

public static void Constructor7()
{
    // Create a generic List of types and add the known types 
    // to the collection.
    List<Type> knownTypeList = new List<Type>();
    knownTypeList.Add(typeof(PurchaseOrder));
    knownTypeList.Add(typeof(PurchaseOrderV3));

    // Create an instance of a class that  
    // implements the IDataContractSurrogate interface. 
    // The implementation code is not shown here.
    DCSurrogate mySurrogate = new DCSurrogate();

    DataContractSerializer ser =
        new DataContractSerializer(
        typeof(Person),
        knownTypeList,
        64 * 1024,
        true,
        true,
        mySurrogate);
    // Other code not shown.
}

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft