DataContractSerializerOperationBehavior Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет поведение во время выполнения объекта DataContractSerializer.
public ref class DataContractSerializerOperationBehavior : System::ServiceModel::Description::IOperationBehavior
public ref class DataContractSerializerOperationBehavior : System::ServiceModel::Description::IOperationBehavior, System::ServiceModel::Description::IWsdlExportExtension
public class DataContractSerializerOperationBehavior : System.ServiceModel.Description.IOperationBehavior
public class DataContractSerializerOperationBehavior : System.ServiceModel.Description.IOperationBehavior, System.ServiceModel.Description.IWsdlExportExtension
type DataContractSerializerOperationBehavior = class
interface IOperationBehavior
type DataContractSerializerOperationBehavior = class
interface IOperationBehavior
interface IWsdlExportExtension
Public Class DataContractSerializerOperationBehavior
Implements IOperationBehavior
Public Class DataContractSerializerOperationBehavior
Implements IOperationBehavior, IWsdlExportExtension
- Наследование
-
DataContractSerializerOperationBehavior
- Реализации
Примеры
Следующий пример находит DataContractSerializerOperationBehavior в коллекции поведения для операции и сбрасывает MaxItemsInObjectGraph и IgnoreExtensionDataObject свойства.
private void DataContractBehavior()
{
WSHttpBinding b = new WSHttpBinding(SecurityMode.Message);
Uri baseAddress = new Uri("http://localhost:1066/calculator");
ServiceHost sh = new ServiceHost(typeof(Calculator), baseAddress);
sh.AddServiceEndpoint(typeof(ICalculator), b, "");
// Find the ContractDescription of the operation to find.
ContractDescription cd = sh.Description.Endpoints[0].Contract;
OperationDescription myOperationDescription = cd.Operations.Find("Add");
// Find the serializer behavior.
DataContractSerializerOperationBehavior serializerBehavior =
myOperationDescription.Behaviors.
Find<DataContractSerializerOperationBehavior>();
// If the serializer is not found, create one and add it.
if (serializerBehavior == null)
{
serializerBehavior = new DataContractSerializerOperationBehavior(myOperationDescription);
myOperationDescription.Behaviors.Add(serializerBehavior);
}
// Change the settings of the behavior.
serializerBehavior.MaxItemsInObjectGraph = 10000;
serializerBehavior.IgnoreExtensionDataObject = true;
sh.Open();
Console.WriteLine("Listening");
Console.ReadLine();
}
Private Sub DataContractBehavior()
Dim b As New WSHttpBinding(SecurityMode.Message)
Dim baseAddress As New Uri("http://localhost:1066/calculator")
Dim sh As New ServiceHost(GetType(Calculator), baseAddress)
sh.AddServiceEndpoint(GetType(ICalculator), b, "")
' Find the ContractDescription of the operation to find.
Dim cd As ContractDescription = sh.Description.Endpoints(0).Contract
Dim myOperationDescription As OperationDescription = cd.Operations.Find("Add")
' Find the serializer behavior.
Dim serializerBehavior As DataContractSerializerOperationBehavior = _
myOperationDescription.Behaviors.Find _
(Of DataContractSerializerOperationBehavior)()
' If the serializer is not found, create one and add it.
If serializerBehavior Is Nothing Then
serializerBehavior = New DataContractSerializerOperationBehavior(myOperationDescription)
myOperationDescription.Behaviors.Add(serializerBehavior)
End If
' Change settings of the behavior.
serializerBehavior.MaxItemsInObjectGraph = 10000
serializerBehavior.IgnoreExtensionDataObject = True
sh.Open()
Console.WriteLine("Listening")
Console.ReadLine()
End Sub
Комментарии
DataContractSerializerOperationBehavior позволяет управлять параметрами DataContractSerializer, такими как свойства MaxItemsInObjectGraph и IgnoreExtensionDataObject. Некоторые из этих свойств можно задать только с помощью конструктора класса. В этом случае DataContractSerializer можно заменить с помощью метода CreateSerializer. Дополнительные сведения о контрактах данных см. в разделе "Использование контрактов данных".
Дополнительные сведения об использовании DataContractSerializerOperationBehavior для замены IDataContractSurrogate, возвращенной свойством DataContractSurrogate, см. в суррогатныхконтракта данных.
Конструкторы
| Имя | Описание |
|---|---|
| DataContractSerializerOperationBehavior(OperationDescription, DataContractFormatAttribute) |
Инициализирует новый экземпляр класса DataContractSerializerOperationBehavior с указанным описанием операции и форматом контракта данных. |
| DataContractSerializerOperationBehavior(OperationDescription) |
Инициализирует новый экземпляр класса DataContractSerializerOperationBehavior с указанным описанием операции. |
Свойства
| Имя | Описание |
|---|---|
| DataContractFormatAttribute |
Возвращает DataContractFormatAttribute, связанную с операцией. |
| DataContractResolver |
Возвращает или задает реализацию DataContractResolver, которая используется для динамической сопоставления типов во время сериализации и десериализации процессов. |
| DataContractSurrogate |
Возвращает или задает суррогат, используемый во время сериализации и десериализации процессов. |
| IgnoreExtensionDataObject |
Возвращает или задает значение, указывающее, игнорируются ли данные, предоставляемые расширением типа (и поэтому не в контракте данных). |
| MaxItemsInObjectGraph |
Возвращает или задает максимальное количество элементов в графе объектов для сериализации или десериализации. |
| SerializationSurrogateProvider |
Возвращает или задает суррогатный поставщик, используемый во время процессов сериализации и десериализации. |
Методы
| Имя | Описание |
|---|---|
| CreateSerializer(Type, String, String, IList<Type>) |
Создает экземпляр класса, наследуемого от XmlObjectSerializer для процессов сериализации и десериализации. |
| CreateSerializer(Type, XmlDictionaryString, XmlDictionaryString, IList<Type>) |
Создает экземпляр класса, наследуемого от XmlObjectSerializer для процессов сериализации и десериализации с XmlDictionaryString, содержащей пространство имен. |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection) |
Добавляет коллекцию параметров в поведение. |
| IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation) |
Присоединяет поведение клиента к операции. |
| IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation) |
Применяет поведение к операции. |
| IOperationBehavior.Validate(OperationDescription) |
Проверяет операцию. |
| IWsdlExportExtension.ExportContract(WsdlExporter, WsdlContractConversionContext) |
Экспортирует представление WSDL операции. |
| IWsdlExportExtension.ExportEndpoint(WsdlExporter, WsdlEndpointConversionContext) |
Экспортирует описание конечной точки в виде документа WSDL. |