DataContractSerializer Конструкторы
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Инициализирует новый экземпляр класса DataContractSerializer.
Перегрузки
DataContractSerializer(Type) |
Инициализирует новый экземпляр класса DataContractSerializer для сериализации или десериализации объекта указанного типа. |
DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate, DataContractResolver) |
Инициализирует новый экземпляр класса DataContractSerializer для сериализации или десериализации объекта указанного типа. Этот метод также задает список известных типов, которые могут присутствовать в графе объекта; максимальное количество сериализуемых элементов графа; параметры, указывающие, пропускать ли непредвиденные данные, использовать ли нестандартные конструкции XML для сохранения данных ссылок на объект в графе и использовать ли суррогат для пользовательской сериализации; параметры XmlDictionaryString, задающие XML-элемент и пространство имен, в которых находится содержимое, и альтернативу для сопоставления объявлений |
DataContractSerializer(Type, String, String, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate, DataContractResolver) |
Инициализирует новый экземпляр класса DataContractSerializer для сериализации или десериализации объекта указанного типа. Этот метод также задает список известных типов, которые могут присутствовать в графе объекта; максимальное количество сериализуемых элементов графа; параметры, указывающие, пропускать ли непредвиденные данные, использовать ли нестандартные конструкции XML для сохранения данных ссылок на объект в графе и использовать ли суррогат для пользовательской сериализации; а также XML-элемент и пространство имен, в которых находится содержимое, и альтернативу для сопоставления объявлений |
DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate) |
Инициализирует новый экземпляр класса DataContractSerializer для сериализации или десериализации объекта указанного типа. Этот метод также задает список известных типов, которые могут присутствовать в графе объекта; максимальное количество сериализуемых элементов графа; параметры, указывающие, пропускать ли непредвиденные данные, использовать ли нестандартные конструкции XML для сохранения данных ссылок на объект в графе и использовать ли суррогат для пользовательской сериализации; а также параметры XmlDictionaryString, задающие XML-элемент и пространство имен, в которых находится содержимое. |
DataContractSerializer(Type, String, String, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate) |
Инициализирует новый экземпляр класса DataContractSerializer для сериализации или десериализации объекта указанного типа. Этот метод также задает список известных типов, которые могут присутствовать в графе объекта; максимальное количество сериализуемых элементов графа; параметры, указывающие, пропускать ли непредвиденные данные, использовать ли нестандартные конструкции XML для сохранения данных ссылок на объект в графе и использовать ли суррогат для пользовательской сериализации; а также XML-элемент и пространство имен, в которых находится содержимое. |
DataContractSerializer(Type, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate) |
Инициализирует новый экземпляр класса DataContractSerializer для сериализации или десериализации объекта указанного типа. Этот метод также задает список известных типов, которые могут присутствовать в графе объекта; максимальное количество сериализуемых элементов графа; параметры, указывающие, пропускать ли непредвиденные данные, использовать ли нестандартные конструкции XML для сохранения данных ссылок на объект в графе и использовать ли суррогат для пользовательской сериализации. |
DataContractSerializer(Type, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate, DataContractResolver) |
Инициализирует новый экземпляр класса DataContractSerializer для сериализации или десериализации объекта указанного типа. Этот метод также задает список известных типов, которые могут присутствовать в графе объекта; максимальное количество сериализуемых элементов графа; параметры, указывающие, пропускать ли непредвиденные данные, использовать ли нестандартные конструкции XML для сохранения данных ссылок на объект в графе и использовать ли суррогат для пользовательской сериализации; а также альтернативу для сопоставления объявлений |
DataContractSerializer(Type, String, String, IEnumerable<Type>) |
Инициализирует новый экземпляр класса DataContractSerializer для сериализации или десериализации объекта указанного типа. Этот метод также задает корневые XML-элемент и пространство имен в двух строковых параметрах, а также список известных типов, которые могут присутствовать в графе объектов. |
DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString) |
Инициализирует новый экземпляр класса DataContractSerializer для выполнения сериализации или десериализации объекта указанного типа с помощью предоставленных корневых элемента и пространства имен XML, заданных посредством параметров типа XmlDictionaryString. |
DataContractSerializer(Type, String, String) |
Инициализирует новый экземпляр класса DataContractSerializer для выполнения сериализации или десериализации объекта указанного типа с помощью предоставленных корневых элемента и пространства имен XML. |
DataContractSerializer(Type, DataContractSerializerSettings) |
Инициализирует новый экземпляр класса DataContractSerializer для сериализации или десериализации объекта указанного типа и параметров. |
DataContractSerializer(Type, IEnumerable<Type>) |
Инициализирует новый экземпляр класса DataContractSerializer для выполнения сериализации или десериализации объекта указанного типа и инициализирует коллекцию известных типов, которые могут присутствовать в графе объекта. |
DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString, IEnumerable<Type>) |
Инициализирует новый экземпляр класса DataContractSerializer для сериализации или десериализации объекта указанного типа. Этот метод также задает корневые XML-элемент и пространство имен в двух параметрах XmlDictionaryString, а также список известных типов, которые могут присутствовать в графе объекта. |
DataContractSerializer(Type)
- Исходный код:
- DataContractSerializer.cs
- Исходный код:
- DataContractSerializer.cs
- Исходный код:
- DataContractSerializer.cs
Инициализирует новый экземпляр класса DataContractSerializer для сериализации или десериализации объекта указанного типа.
public:
DataContractSerializer(Type ^ type);
public DataContractSerializer (Type type);
new System.Runtime.Serialization.DataContractSerializer : Type -> System.Runtime.Serialization.DataContractSerializer
Public Sub New (type As Type)
Параметры
- type
- Type
Тип сериализуемых или десериализуемых экземпляров.
Примеры
В следующем примере создается экземпляр класса DataContractSerializer, указывающий сериализуемые и десериализуемые типы.
public static void Constructor1()
{
// Create an instance of the DataContractSerializer.
DataContractSerializer ser =
new DataContractSerializer(typeof(Person));
// Other code not shown.
}
Public Shared Sub Constructor1()
' Create an instance of the DataContractSerializer.
Dim ser As New DataContractSerializer(GetType(Person))
' Other code not shown.
End Sub
Применяется к
DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate, DataContractResolver)
Инициализирует новый экземпляр класса DataContractSerializer для сериализации или десериализации объекта указанного типа. Этот метод также задает список известных типов, которые могут присутствовать в графе объекта; максимальное количество сериализуемых элементов графа; параметры, указывающие, пропускать ли непредвиденные данные, использовать ли нестандартные конструкции XML для сохранения данных ссылок на объект в графе и использовать ли суррогат для пользовательской сериализации; параметры XmlDictionaryString, задающие XML-элемент и пространство имен, в которых находится содержимое, и альтернативу для сопоставления объявлений xsi:type
во время выполнения.
public:
DataContractSerializer(Type ^ type, System::Xml::XmlDictionaryString ^ rootName, System::Xml::XmlDictionaryString ^ rootNamespace, System::Collections::Generic::IEnumerable<Type ^> ^ knownTypes, int maxItemsInObjectGraph, bool ignoreExtensionDataObject, bool preserveObjectReferences, System::Runtime::Serialization::IDataContractSurrogate ^ dataContractSurrogate, System::Runtime::Serialization::DataContractResolver ^ dataContractResolver);
public DataContractSerializer (Type type, System.Xml.XmlDictionaryString rootName, System.Xml.XmlDictionaryString rootNamespace, System.Collections.Generic.IEnumerable<Type> knownTypes, int maxItemsInObjectGraph, bool ignoreExtensionDataObject, bool preserveObjectReferences, System.Runtime.Serialization.IDataContractSurrogate dataContractSurrogate, System.Runtime.Serialization.DataContractResolver dataContractResolver);
new System.Runtime.Serialization.DataContractSerializer : Type * System.Xml.XmlDictionaryString * System.Xml.XmlDictionaryString * seq<Type> * int * bool * bool * System.Runtime.Serialization.IDataContractSurrogate * System.Runtime.Serialization.DataContractResolver -> System.Runtime.Serialization.DataContractSerializer
Public Sub New (type As Type, rootName As XmlDictionaryString, rootNamespace As XmlDictionaryString, knownTypes As IEnumerable(Of Type), maxItemsInObjectGraph As Integer, ignoreExtensionDataObject As Boolean, preserveObjectReferences As Boolean, dataContractSurrogate As IDataContractSurrogate, dataContractResolver As DataContractResolver)
Параметры
- type
- Type
Тип сериализуемых или десериализуемых экземпляров.
- rootName
- XmlDictionaryString
XML-элемент, содержащий данные для сериализации или десериализации.
- rootNamespace
- XmlDictionaryString
Пространство имен XML-элемента, содержащего данные для сериализации или десериализации.
- knownTypes
- IEnumerable<Type>
Интерфейс IEnumerable<T>, принадлежащий к типу Type, в котором содержатся известные типы, которые могут присутствовать в графе объекта.
- maxItemsInObjectGraph
- Int32
Максимальное количество элементов в графе для сериализации или десериализации.
- ignoreExtensionDataObject
- Boolean
Значение true
, если требуется игнорировать предоставляемые расширением типа данные при сериализации и десериализации; в противном случае — значение false
.
- preserveObjectReferences
- Boolean
Значение true
, если требуется использовать нестандартные конструкции XML для сохранения данных ссылок на объект; в противном случае — значение false
.
- dataContractSurrogate
- IDataContractSurrogate
Реализация объекта IDataContractSurrogate для настройки процесса сериализации.
- dataContractResolver
- DataContractResolver
Реализация DataContractResolver для сопоставления объявлений xsi:type
типам контракта данных.
Применяется к
DataContractSerializer(Type, String, String, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate, DataContractResolver)
Инициализирует новый экземпляр класса DataContractSerializer для сериализации или десериализации объекта указанного типа. Этот метод также задает список известных типов, которые могут присутствовать в графе объекта; максимальное количество сериализуемых элементов графа; параметры, указывающие, пропускать ли непредвиденные данные, использовать ли нестандартные конструкции XML для сохранения данных ссылок на объект в графе и использовать ли суррогат для пользовательской сериализации; а также XML-элемент и пространство имен, в которых находится содержимое, и альтернативу для сопоставления объявлений xsi:type
во время выполнения.
public:
DataContractSerializer(Type ^ type, System::String ^ rootName, System::String ^ rootNamespace, System::Collections::Generic::IEnumerable<Type ^> ^ knownTypes, int maxItemsInObjectGraph, bool ignoreExtensionDataObject, bool preserveObjectReferences, System::Runtime::Serialization::IDataContractSurrogate ^ dataContractSurrogate, System::Runtime::Serialization::DataContractResolver ^ dataContractResolver);
public DataContractSerializer (Type type, string rootName, string rootNamespace, System.Collections.Generic.IEnumerable<Type> knownTypes, int maxItemsInObjectGraph, bool ignoreExtensionDataObject, bool preserveObjectReferences, System.Runtime.Serialization.IDataContractSurrogate dataContractSurrogate, System.Runtime.Serialization.DataContractResolver dataContractResolver);
new System.Runtime.Serialization.DataContractSerializer : Type * string * string * seq<Type> * int * bool * bool * System.Runtime.Serialization.IDataContractSurrogate * System.Runtime.Serialization.DataContractResolver -> System.Runtime.Serialization.DataContractSerializer
Public Sub New (type As Type, rootName As String, rootNamespace As String, knownTypes As IEnumerable(Of Type), maxItemsInObjectGraph As Integer, ignoreExtensionDataObject As Boolean, preserveObjectReferences As Boolean, dataContractSurrogate As IDataContractSurrogate, dataContractResolver As DataContractResolver)
Параметры
- type
- Type
Тип сериализуемых или десериализуемых экземпляров.
- rootName
- String
XML-элемент, содержащий данные для сериализации или десериализации.
- rootNamespace
- String
Пространство имен XML-элемента, содержащего данные для сериализации или десериализации.
- knownTypes
- IEnumerable<Type>
Интерфейс IEnumerable<T>, принадлежащий к типу Type, в котором содержатся известные типы, которые могут присутствовать в графе объекта.
- maxItemsInObjectGraph
- Int32
Максимальное количество элементов в графе для сериализации или десериализации.
- ignoreExtensionDataObject
- Boolean
Значение true
, если требуется игнорировать предоставляемые расширением типа данные при сериализации и десериализации; в противном случае — значение false
.
- preserveObjectReferences
- Boolean
Значение true
, если требуется использовать нестандартные конструкции XML для сохранения данных ссылок на объект; в противном случае — значение false
.
- dataContractSurrogate
- IDataContractSurrogate
Реализация объекта IDataContractSurrogate для настройки процесса сериализации.
- dataContractResolver
- DataContractResolver
Реализация DataContractResolver для сопоставления объявлений xsi:type
типам контракта данных.
Применяется к
DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate)
Инициализирует новый экземпляр класса DataContractSerializer для сериализации или десериализации объекта указанного типа. Этот метод также задает список известных типов, которые могут присутствовать в графе объекта; максимальное количество сериализуемых элементов графа; параметры, указывающие, пропускать ли непредвиденные данные, использовать ли нестандартные конструкции XML для сохранения данных ссылок на объект в графе и использовать ли суррогат для пользовательской сериализации; а также параметры XmlDictionaryString, задающие XML-элемент и пространство имен, в которых находится содержимое.
public:
DataContractSerializer(Type ^ type, System::Xml::XmlDictionaryString ^ rootName, System::Xml::XmlDictionaryString ^ rootNamespace, System::Collections::Generic::IEnumerable<Type ^> ^ knownTypes, int maxItemsInObjectGraph, bool ignoreExtensionDataObject, bool preserveObjectReferences, System::Runtime::Serialization::IDataContractSurrogate ^ dataContractSurrogate);
public DataContractSerializer (Type type, System.Xml.XmlDictionaryString rootName, System.Xml.XmlDictionaryString rootNamespace, System.Collections.Generic.IEnumerable<Type> knownTypes, int maxItemsInObjectGraph, bool ignoreExtensionDataObject, bool preserveObjectReferences, System.Runtime.Serialization.IDataContractSurrogate dataContractSurrogate);
new System.Runtime.Serialization.DataContractSerializer : Type * System.Xml.XmlDictionaryString * System.Xml.XmlDictionaryString * seq<Type> * int * bool * bool * System.Runtime.Serialization.IDataContractSurrogate -> System.Runtime.Serialization.DataContractSerializer
Public Sub New (type As Type, rootName As XmlDictionaryString, rootNamespace As XmlDictionaryString, knownTypes As IEnumerable(Of Type), maxItemsInObjectGraph As Integer, ignoreExtensionDataObject As Boolean, preserveObjectReferences As Boolean, dataContractSurrogate As IDataContractSurrogate)
Параметры
- type
- Type
Тип сериализуемых или десериализуемых экземпляров.
- rootName
- XmlDictionaryString
Объект XmlDictionaryString, указывающий XML-элемент, содержащий данные для сериализации или десериализации.
- rootNamespace
- XmlDictionaryString
Объект XmlDictionaryString, задающий пространство имен XML корня.
- knownTypes
- IEnumerable<Type>
Интерфейс IEnumerable<T>, принадлежащий к типу Type, в котором содержатся известные типы, которые могут присутствовать в графе объекта.
- maxItemsInObjectGraph
- Int32
Максимальное количество элементов в графе для сериализации или десериализации.
- ignoreExtensionDataObject
- Boolean
Значение true
, если требуется игнорировать предоставляемые расширением типа данные при сериализации и десериализации; в противном случае — значение false
.
- preserveObjectReferences
- Boolean
Значение true
, если требуется использовать нестандартные конструкции XML для сохранения данных ссылок на объект; в противном случае — значение false
.
- dataContractSurrogate
- IDataContractSurrogate
Реализация объекта IDataContractSurrogate для настройки процесса сериализации.
Исключения
Количество элементов превышает максимальное значение.
Примеры
В следующем примере создается экземпляр класса DataContractSerializer, указывающий сериализуемый или десериализуемый тип, корневые XML-элемент и пространство имен (в качестве параметров XmlDictionaryString) и экземпляр IEnumerable<T>, в котором будут содержаться используемые при десериализации типы. Код также задает ignoreExtensionDataObject
для параметров true
и preserveObjectReferences
значение и задает реализацию IDataContractSurrogate интерфейса для обработки устаревших типов (типов, к которым DataContractAttribute не применен атрибут). Дополнительные сведения см. в документации по IDataContractSurrogate.
public static void Constructor9()
{
// 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 XmlDictionary and add values to it.
XmlDictionary d = new XmlDictionary();
XmlDictionaryString name_value = d.Add("Customer");
XmlDictionaryString ns_value = d.Add("http://www.contoso.com");
// 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),
name_value,
ns_value,
knownTypeList,
64 * 1024,
true,
true,
mySurrogate);
// Other code not shown.
}
Public Shared Sub Constructor9()
' Create a generic List of types and add the known types
' to the collection.
Dim knownTypeList As New List(Of Type)
knownTypeList.Add(GetType(PurchaseOrder))
knownTypeList.Add(GetType(PurchaseOrderV3))
' Create an XmlDictionary and add values to it.
Dim d As New XmlDictionary()
Dim name_value As XmlDictionaryString = d.Add("Customer")
Dim ns_value As XmlDictionaryString = d.Add("http://www.contoso.com")
' Create an instance of a class that
' implements the IDataContractSurrogate interface.
' The implementation code is not shown here.
Dim mySurrogate As New DCSurrogate()
Dim ser As New DataContractSerializer(GetType(Person), _
name_value, _
ns_value, _
knownTypeList, _
64 * 1064, _
True, _
True, _
mySurrogate)
' Other code not shown.
End Sub
См. также раздел
- MaxItemsInObjectGraph
- PreserveObjectReferences
- IgnoreExtensionDataObject
- IExtensibleDataObject
- ExtensionDataObject
- IDataContractSurrogate
Применяется к
DataContractSerializer(Type, String, String, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate)
Инициализирует новый экземпляр класса DataContractSerializer для сериализации или десериализации объекта указанного типа. Этот метод также задает список известных типов, которые могут присутствовать в графе объекта; максимальное количество сериализуемых элементов графа; параметры, указывающие, пропускать ли непредвиденные данные, использовать ли нестандартные конструкции XML для сохранения данных ссылок на объект в графе и использовать ли суррогат для пользовательской сериализации; а также XML-элемент и пространство имен, в которых находится содержимое.
public:
DataContractSerializer(Type ^ type, System::String ^ rootName, System::String ^ rootNamespace, System::Collections::Generic::IEnumerable<Type ^> ^ knownTypes, int maxItemsInObjectGraph, bool ignoreExtensionDataObject, bool preserveObjectReferences, System::Runtime::Serialization::IDataContractSurrogate ^ dataContractSurrogate);
public DataContractSerializer (Type type, string rootName, string rootNamespace, System.Collections.Generic.IEnumerable<Type> knownTypes, int maxItemsInObjectGraph, bool ignoreExtensionDataObject, bool preserveObjectReferences, System.Runtime.Serialization.IDataContractSurrogate dataContractSurrogate);
new System.Runtime.Serialization.DataContractSerializer : Type * string * string * seq<Type> * int * bool * bool * System.Runtime.Serialization.IDataContractSurrogate -> System.Runtime.Serialization.DataContractSerializer
Public Sub New (type As Type, rootName As String, rootNamespace As String, knownTypes As IEnumerable(Of Type), maxItemsInObjectGraph As Integer, ignoreExtensionDataObject As Boolean, preserveObjectReferences As Boolean, dataContractSurrogate As IDataContractSurrogate)
Параметры
- type
- Type
Тип сериализуемых или десериализуемых экземпляров.
- rootName
- String
XML-элемент, содержащий данные для сериализации или десериализации.
- rootNamespace
- String
Пространство имен XML-элемента, содержащего данные для сериализации или десериализации.
- knownTypes
- IEnumerable<Type>
Интерфейс IEnumerable<T>, принадлежащий к типу Type, в котором содержатся известные типы, которые могут присутствовать в графе объекта.
- maxItemsInObjectGraph
- Int32
Максимальное количество элементов в графе для сериализации или десериализации.
- ignoreExtensionDataObject
- Boolean
Значение true
, если требуется игнорировать предоставляемые расширением типа данные при сериализации и десериализации; в противном случае — значение false
.
- preserveObjectReferences
- Boolean
Значение true
, если требуется использовать нестандартные конструкции XML для сохранения данных ссылок на объект; в противном случае — значение false
.
- dataContractSurrogate
- IDataContractSurrogate
Реализация объекта IDataContractSurrogate для настройки процесса сериализации.
Исключения
Количество элементов превышает максимальное значение.
Примеры
В следующем примере создается экземпляр класса DataContractSerializer, указывающий сериализуемый или десериализуемый тип, корневые XML-элемент и пространство имен и экземпляр IEnumerable<T>, в котором будут содержаться используемые при десериализации типы. Код также задает ignoreExtensionDataObject
для параметров true
и preserveObjectReferences
значение и задает реализацию IDataContractSurrogate интерфейса для обработки устаревших типов (типов, к которым DataContractAttribute не применен атрибут). Дополнительные сведения см. в документации по IDataContractSurrogate.
public static void Constructor8()
{
// 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),
"Customer",
@"http://www.contoso.com",
knownTypeList,
64 * 1024,
true,
true,
mySurrogate);
// Other code not shown.
}
Public Shared Sub Constructor8()
' Create a generic List of types and add the known types
' to the collection.
Dim knownTypeList As New List(Of Type)
knownTypeList.Add(GetType(PurchaseOrder))
knownTypeList.Add(GetType(PurchaseOrderV3))
' Create an instance of a class that
' implements the IDataContractSurrogate interface.
' The implementation code is not shown here.
Dim mySurrogate As New DCSurrogate()
Dim ser As New DataContractSerializer(GetType(Person), _
"Customer", _
"http://www.contoso.com", _
knownTypeList, _
64 * 1064, _
True, _
True, _
mySurrogate)
' Other code not shown.
End Sub
См. также раздел
- MaxItemsInObjectGraph
- PreserveObjectReferences
- IgnoreExtensionDataObject
- IExtensibleDataObject
- ExtensionDataObject
- KnownTypeAttribute
- IDataContractSurrogate
Применяется к
DataContractSerializer(Type, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate)
Инициализирует новый экземпляр класса DataContractSerializer для сериализации или десериализации объекта указанного типа. Этот метод также задает список известных типов, которые могут присутствовать в графе объекта; максимальное количество сериализуемых элементов графа; параметры, указывающие, пропускать ли непредвиденные данные, использовать ли нестандартные конструкции XML для сохранения данных ссылок на объект в графе и использовать ли суррогат для пользовательской сериализации.
public:
DataContractSerializer(Type ^ type, System::Collections::Generic::IEnumerable<Type ^> ^ knownTypes, int maxItemsInObjectGraph, bool ignoreExtensionDataObject, bool preserveObjectReferences, System::Runtime::Serialization::IDataContractSurrogate ^ dataContractSurrogate);
public DataContractSerializer (Type type, System.Collections.Generic.IEnumerable<Type> knownTypes, int maxItemsInObjectGraph, bool ignoreExtensionDataObject, bool preserveObjectReferences, System.Runtime.Serialization.IDataContractSurrogate dataContractSurrogate);
new System.Runtime.Serialization.DataContractSerializer : Type * seq<Type> * int * bool * bool * System.Runtime.Serialization.IDataContractSurrogate -> System.Runtime.Serialization.DataContractSerializer
Public Sub New (type As Type, knownTypes As IEnumerable(Of Type), maxItemsInObjectGraph As Integer, ignoreExtensionDataObject As Boolean, preserveObjectReferences As Boolean, dataContractSurrogate As IDataContractSurrogate)
Параметры
- type
- Type
Тип сериализуемых или десериализуемых экземпляров.
- knownTypes
- IEnumerable<Type>
Интерфейс IEnumerable<T>, принадлежащий к типу Type, в котором содержатся известные типы, которые могут присутствовать в графе объекта.
- maxItemsInObjectGraph
- Int32
Максимальное количество элементов в графе для сериализации или десериализации. Значение по умолчанию — это значение, возвращаемое свойством Int32.MaxValue .
- ignoreExtensionDataObject
- Boolean
Значение true
, если требуется игнорировать предоставляемые расширением типа данные при сериализации и десериализации; в противном случае — значение false
.
- preserveObjectReferences
- Boolean
Значение true
, если требуется использовать нестандартные конструкции XML для сохранения данных ссылок на объект; в противном случае — значение false
.
- dataContractSurrogate
- IDataContractSurrogate
Реализация объекта IDataContractSurrogate для настройки процесса сериализации.
Исключения
Количество элементов превышает максимальное значение.
Примеры
В следующем примере создается экземпляр класса DataContractSerializer, указывающий сериализуемый или десериализуемый тип и экземпляр IEnumerable<T>, в котором будут содержаться известные типы, используемые при сериализации или десериализации. Код также задает ignoreExtensionDataObject
для параметров true
и preserveObjectReferences
значение , а также задает реализацию IDataContractSurrogate интерфейса для обработки устаревших типов (типов, к которым DataContractAttribute не применяется атрибут ). Дополнительные сведения см. в документации по IDataContractSurrogate.
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.
}
Public Shared Sub Constructor7()
' Create a generic List of types and add the known types
' to the collection.
Dim knownTypeList As New List(Of Type)
knownTypeList.Add(GetType(PurchaseOrder))
knownTypeList.Add(GetType(PurchaseOrderV3))
' Create an instance of a class that
' implements the IDataContractSurrogate interface.
' The implementation code is not shown here.
Dim mySurrogate As New DCSurrogate()
Dim ser As New DataContractSerializer(GetType(Person), _
knownTypeList, _
64 * 1064, _
True, _
True, _
mySurrogate)
' Other code not shown.
End Sub
См. также раздел
- MaxItemsInObjectGraph
- PreserveObjectReferences
- IgnoreExtensionDataObject
- IExtensibleDataObject
- ExtensionDataObject
- KnownTypeAttribute
- IDataContractSurrogate
Применяется к
DataContractSerializer(Type, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate, DataContractResolver)
Инициализирует новый экземпляр класса DataContractSerializer для сериализации или десериализации объекта указанного типа. Этот метод также задает список известных типов, которые могут присутствовать в графе объекта; максимальное количество сериализуемых элементов графа; параметры, указывающие, пропускать ли непредвиденные данные, использовать ли нестандартные конструкции XML для сохранения данных ссылок на объект в графе и использовать ли суррогат для пользовательской сериализации; а также альтернативу для сопоставления объявлений xsi:type
во время выполнения.
public:
DataContractSerializer(Type ^ type, System::Collections::Generic::IEnumerable<Type ^> ^ knownTypes, int maxItemsInObjectGraph, bool ignoreExtensionDataObject, bool preserveObjectReferences, System::Runtime::Serialization::IDataContractSurrogate ^ dataContractSurrogate, System::Runtime::Serialization::DataContractResolver ^ dataContractResolver);
public DataContractSerializer (Type type, System.Collections.Generic.IEnumerable<Type> knownTypes, int maxItemsInObjectGraph, bool ignoreExtensionDataObject, bool preserveObjectReferences, System.Runtime.Serialization.IDataContractSurrogate dataContractSurrogate, System.Runtime.Serialization.DataContractResolver dataContractResolver);
new System.Runtime.Serialization.DataContractSerializer : Type * seq<Type> * int * bool * bool * System.Runtime.Serialization.IDataContractSurrogate * System.Runtime.Serialization.DataContractResolver -> System.Runtime.Serialization.DataContractSerializer
Public Sub New (type As Type, knownTypes As IEnumerable(Of Type), maxItemsInObjectGraph As Integer, ignoreExtensionDataObject As Boolean, preserveObjectReferences As Boolean, dataContractSurrogate As IDataContractSurrogate, dataContractResolver As DataContractResolver)
Параметры
- type
- Type
Тип сериализуемых или десериализуемых экземпляров.
- knownTypes
- IEnumerable<Type>
Интерфейс IEnumerable<T>, принадлежащий к типу Type, в котором содержатся известные типы, которые могут присутствовать в графе объекта.
- maxItemsInObjectGraph
- Int32
Максимальное количество элементов в графе для сериализации или десериализации. Значение по умолчанию — это значение, возвращаемое свойством Int32.MaxValue .
- ignoreExtensionDataObject
- Boolean
Значение true
, если требуется игнорировать предоставляемые расширением типа данные при сериализации и десериализации; в противном случае — значение false
.
- preserveObjectReferences
- Boolean
Значение true
, если требуется использовать нестандартные конструкции XML для сохранения данных ссылок на объект; в противном случае — значение false
.
- dataContractSurrogate
- IDataContractSurrogate
Реализация объекта IDataContractSurrogate для настройки процесса сериализации.
- dataContractResolver
- DataContractResolver
Реализация DataContractResolver для сопоставления объявлений xsi:type
типам контракта данных.
Комментарии
Предупреждение
Этот метод недоступен в приложениях Магазина Windows.
Применяется к
DataContractSerializer(Type, String, String, IEnumerable<Type>)
- Исходный код:
- DataContractSerializer.cs
- Исходный код:
- DataContractSerializer.cs
- Исходный код:
- DataContractSerializer.cs
Инициализирует новый экземпляр класса DataContractSerializer для сериализации или десериализации объекта указанного типа. Этот метод также задает корневые XML-элемент и пространство имен в двух строковых параметрах, а также список известных типов, которые могут присутствовать в графе объектов.
public:
DataContractSerializer(Type ^ type, System::String ^ rootName, System::String ^ rootNamespace, System::Collections::Generic::IEnumerable<Type ^> ^ knownTypes);
public DataContractSerializer (Type type, string rootName, string rootNamespace, System.Collections.Generic.IEnumerable<Type> knownTypes);
public DataContractSerializer (Type type, string rootName, string rootNamespace, System.Collections.Generic.IEnumerable<Type>? knownTypes);
new System.Runtime.Serialization.DataContractSerializer : Type * string * string * seq<Type> -> System.Runtime.Serialization.DataContractSerializer
Public Sub New (type As Type, rootName As String, rootNamespace As String, knownTypes As IEnumerable(Of Type))
Параметры
- type
- Type
Тип сериализуемых или десериализуемых экземпляров.
- rootName
- String
Имя корневого элемента содержимого.
- rootNamespace
- String
Пространство имен корневого элемента.
- knownTypes
- IEnumerable<Type>
Интерфейс IEnumerable<T>, принадлежащий к типу Type, в котором содержатся типы, которые могут присутствовать в графе объекта.
Примеры
В следующем примере создается экземпляр DataContractSerializer, указывающий сериализуемый или десериализуемый тип, а также имя и пространство имен XML, из которого происходит чтение или запись в XML-документ. В этом примере также создается экземпляр IEnumerable<T>, в котором будут содержаться известные типы, используемые при сериализации или десериализации.
public static void Constructor5()
{
// 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));
DataContractSerializer ser =
new DataContractSerializer(
typeof(Person),
"Customer",
@"http://www.contoso.com",
knownTypeList);
// Other code not shown.
}
Public Shared Sub Constructor5()
' Create a generic List of types and add the known types
' to the collection.
Dim knownTypeList As New List(Of Type)
knownTypeList.Add(GetType(PurchaseOrder))
knownTypeList.Add(GetType(PurchaseOrderV3))
Dim ser As New DataContractSerializer(GetType(Person), _
"Customer", _
"http://www.contoso.com", _
knownTypeList)
' Other code not shown.
End Sub
См. также раздел
Применяется к
DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString)
- Исходный код:
- DataContractSerializer.cs
- Исходный код:
- DataContractSerializer.cs
- Исходный код:
- DataContractSerializer.cs
Инициализирует новый экземпляр класса DataContractSerializer для выполнения сериализации или десериализации объекта указанного типа с помощью предоставленных корневых элемента и пространства имен XML, заданных посредством параметров типа XmlDictionaryString.
public:
DataContractSerializer(Type ^ type, System::Xml::XmlDictionaryString ^ rootName, System::Xml::XmlDictionaryString ^ rootNamespace);
public DataContractSerializer (Type type, System.Xml.XmlDictionaryString rootName, System.Xml.XmlDictionaryString rootNamespace);
new System.Runtime.Serialization.DataContractSerializer : Type * System.Xml.XmlDictionaryString * System.Xml.XmlDictionaryString -> System.Runtime.Serialization.DataContractSerializer
Public Sub New (type As Type, rootName As XmlDictionaryString, rootNamespace As XmlDictionaryString)
Параметры
- type
- Type
Тип сериализуемых или десериализуемых экземпляров.
- rootName
- XmlDictionaryString
Объект XmlDictionaryString, содержащий имя корневого элемента содержимого.
- rootNamespace
- XmlDictionaryString
Объект XmlDictionaryString, содержащий пространство имен корневого элемента.
Примеры
В следующем примере создается экземпляр DataContractSerializer, указывающий сериализуемый или десериализуемый тип, а также имя и пространство имен XML (в качестве объектов XmlDictionaryString), из которого происходит чтение или запись в XML-документ.
public static void Constructor4()
{
// Create an instance of the DataContractSerializer
// specifying the type, and name and
// namespace as XmlDictionaryString objects.
// Create an XmlDictionary and add values to it.
XmlDictionary d = new XmlDictionary();
XmlDictionaryString name_value = d.Add("Customer");
XmlDictionaryString ns_value = d.Add("http://www.contoso.com");
// Create the serializer.
DataContractSerializer ser =
new DataContractSerializer(
typeof(Person),
name_value,
ns_value);
// Other code not shown.
}
Public Shared Sub Constructor4()
' Create an instance of the DataContractSerializer
' specifying the type, and name and
' namespace as XmlDictionaryString objects.
' Create an XmlDictionary and add values to it.
Dim d As New XmlDictionary()
Dim name_value As XmlDictionaryString = d.Add("Customer")
Dim ns_value As XmlDictionaryString = d.Add("http://www.contoso.com")
' Create the serializer.
Dim ser As New DataContractSerializer(GetType(Person), _
name_value, _
ns_value)
' Other code not shown.
End Sub
Применяется к
DataContractSerializer(Type, String, String)
- Исходный код:
- DataContractSerializer.cs
- Исходный код:
- DataContractSerializer.cs
- Исходный код:
- DataContractSerializer.cs
Инициализирует новый экземпляр класса DataContractSerializer для выполнения сериализации или десериализации объекта указанного типа с помощью предоставленных корневых элемента и пространства имен XML.
public:
DataContractSerializer(Type ^ type, System::String ^ rootName, System::String ^ rootNamespace);
public DataContractSerializer (Type type, string rootName, string rootNamespace);
new System.Runtime.Serialization.DataContractSerializer : Type * string * string -> System.Runtime.Serialization.DataContractSerializer
Public Sub New (type As Type, rootName As String, rootNamespace As String)
Параметры
- type
- Type
Тип сериализуемых или десериализуемых экземпляров.
- rootName
- String
Имя XML-элемента, содержащего данные для сериализации или десериализации.
- rootNamespace
- String
Пространство имен XML-элемента, содержащего данные для сериализации или десериализации.
Примеры
В следующем примере создается экземпляр DataContractSerializer, указывающий сериализуемый или десериализуемый тип, а также имя и пространство имен XML, из которого происходит чтение или запись в XML-документ.
public static void Constructor3()
{
// Create an instance of the DataContractSerializer
// specifying the type, and name and
// namespace as strings.
DataContractSerializer ser =
new DataContractSerializer(
typeof(Person),
"Customer",
"http://www.contoso.com");
// Other code not shown.
}
Public Shared Sub Constructor3()
' Create an instance of the DataContractSerializer
' specifying the type, and name and
' namespace as strings.
Dim ser As New DataContractSerializer(GetType(Person), _
"Customer", _
"http://www.contoso.com")
' Other code not shown.
End Sub
Применяется к
DataContractSerializer(Type, DataContractSerializerSettings)
- Исходный код:
- DataContractSerializer.cs
- Исходный код:
- DataContractSerializer.cs
- Исходный код:
- DataContractSerializer.cs
Инициализирует новый экземпляр класса DataContractSerializer для сериализации или десериализации объекта указанного типа и параметров.
public:
DataContractSerializer(Type ^ type, System::Runtime::Serialization::DataContractSerializerSettings ^ settings);
public DataContractSerializer (Type type, System.Runtime.Serialization.DataContractSerializerSettings settings);
public DataContractSerializer (Type type, System.Runtime.Serialization.DataContractSerializerSettings? settings);
new System.Runtime.Serialization.DataContractSerializer : Type * System.Runtime.Serialization.DataContractSerializerSettings -> System.Runtime.Serialization.DataContractSerializer
Public Sub New (type As Type, settings As DataContractSerializerSettings)
Параметры
- type
- Type
Тип сериализуемого или десериализуемого экземпляра.
- settings
- DataContractSerializerSettings
Параметры сериализатора.
Применяется к
DataContractSerializer(Type, IEnumerable<Type>)
- Исходный код:
- DataContractSerializer.cs
- Исходный код:
- DataContractSerializer.cs
- Исходный код:
- DataContractSerializer.cs
Инициализирует новый экземпляр класса DataContractSerializer для выполнения сериализации или десериализации объекта указанного типа и инициализирует коллекцию известных типов, которые могут присутствовать в графе объекта.
public:
DataContractSerializer(Type ^ type, System::Collections::Generic::IEnumerable<Type ^> ^ knownTypes);
public DataContractSerializer (Type type, System.Collections.Generic.IEnumerable<Type> knownTypes);
public DataContractSerializer (Type type, System.Collections.Generic.IEnumerable<Type>? knownTypes);
new System.Runtime.Serialization.DataContractSerializer : Type * seq<Type> -> System.Runtime.Serialization.DataContractSerializer
Public Sub New (type As Type, knownTypes As IEnumerable(Of Type))
Параметры
- type
- Type
Тип сериализуемых или десериализуемых экземпляров.
- knownTypes
- IEnumerable<Type>
Интерфейс IEnumerable<T>, принадлежащий к типу Type, в котором содержатся типы, которые могут присутствовать в графе объекта.
Примеры
В следующем примере создается экземпляр класса DataContractSerializer, указывающий сериализуемый или десериализуемый тип и коллекцию известных типов, которые могут использоваться в графе объекта.
public static void Constructor2()
{
// 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 a DatatContractSerializer with the collection.
DataContractSerializer ser2 = new DataContractSerializer(
typeof(Orders), knownTypeList);
// Other code not shown.
}
Public Shared Sub Constructor2()
' Create a generic List of types and add the known types
' to the collection.
Dim knownTypeList As New List(Of Type)
knownTypeList.Add(GetType(PurchaseOrder))
knownTypeList.Add(GetType(PurchaseOrderV3))
' Create a DatatContractSerializer with the collection.
Dim ser2 As New DataContractSerializer(GetType(Orders), knownTypeList)
' Other code not shown.
End Sub
См. также раздел
Применяется к
DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString, IEnumerable<Type>)
- Исходный код:
- DataContractSerializer.cs
- Исходный код:
- DataContractSerializer.cs
- Исходный код:
- DataContractSerializer.cs
Инициализирует новый экземпляр класса DataContractSerializer для сериализации или десериализации объекта указанного типа. Этот метод также задает корневые XML-элемент и пространство имен в двух параметрах XmlDictionaryString, а также список известных типов, которые могут присутствовать в графе объекта.
public:
DataContractSerializer(Type ^ type, System::Xml::XmlDictionaryString ^ rootName, System::Xml::XmlDictionaryString ^ rootNamespace, System::Collections::Generic::IEnumerable<Type ^> ^ knownTypes);
public DataContractSerializer (Type type, System.Xml.XmlDictionaryString rootName, System.Xml.XmlDictionaryString rootNamespace, System.Collections.Generic.IEnumerable<Type> knownTypes);
public DataContractSerializer (Type type, System.Xml.XmlDictionaryString rootName, System.Xml.XmlDictionaryString rootNamespace, System.Collections.Generic.IEnumerable<Type>? knownTypes);
new System.Runtime.Serialization.DataContractSerializer : Type * System.Xml.XmlDictionaryString * System.Xml.XmlDictionaryString * seq<Type> -> System.Runtime.Serialization.DataContractSerializer
Public Sub New (type As Type, rootName As XmlDictionaryString, rootNamespace As XmlDictionaryString, knownTypes As IEnumerable(Of Type))
Параметры
- type
- Type
Тип сериализуемых или десериализуемых экземпляров.
- rootName
- XmlDictionaryString
Объект XmlDictionaryString, содержащий имя корневого элемента содержимого.
- rootNamespace
- XmlDictionaryString
Объект XmlDictionaryString, содержащий пространство имен корневого элемента.
- knownTypes
- IEnumerable<Type>
Интерфейс IEnumerable<T>, принадлежащий к типу Type, в котором содержатся известные типы, которые могут присутствовать в графе объекта.
Примеры
В следующем примере создается экземпляр DataContractSerializer, указывающий сериализуемый или десериализуемый тип, а также имя и пространство имен XML (в качестве объектов XmlDictionaryString), из которого происходит чтение или запись в XML-документ. В этом примере также создается экземпляр IEnumerable<T>, в котором будут содержаться известные типы, используемые при сериализации или десериализации.
public static void Constructor6()
{
// 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 XmlDictionary and add values to it.
XmlDictionary d = new XmlDictionary();
XmlDictionaryString name_value = d.Add("Customer");
XmlDictionaryString ns_value = d.Add("http://www.contoso.com");
DataContractSerializer ser =
new DataContractSerializer(
typeof(Person),
name_value,
ns_value,
knownTypeList);
// Other code not shown.
}
Public Shared Sub Constructor6()
' Create a generic List of types and add the known types
' to the collection.
Dim knownTypeList As New List(Of Type)
knownTypeList.Add(GetType(PurchaseOrder))
knownTypeList.Add(GetType(PurchaseOrderV3))
' Create an XmlDictionary and add values to it.
Dim d As New XmlDictionary()
Dim name_value As XmlDictionaryString = d.Add("Customer")
Dim ns_value As XmlDictionaryString = d.Add("http://www.contoso.com")
Dim ser As New DataContractSerializer(GetType(Person), _
name_value, _
ns_value, _
knownTypeList)
' Other code not shown.
End Sub