DataContractSerializerOperationBehavior 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示 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 的 的详细信息,请参阅 数据协定代理。
构造函数
属性
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) |