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 的詳細資訊,請參閱 資料合約代理。
建構函式
DataContractSerializerOperationBehavior(OperationDescription) |
使用指定的作業描述,初始化 DataContractSerializerOperationBehavior 類別的新執行個體。 |
DataContractSerializerOperationBehavior(OperationDescription, DataContractFormatAttribute) |
使用指定的作業描述和資料合約格式,初始化 DataContractSerializerOperationBehavior 類別的新執行個體。 |
屬性
DataContractFormatAttribute |
取得與作業關聯的 DataContractFormatAttribute。 |
DataContractResolver |
取得或設定進行序列化及還原序列化程序時,用於動態對應型別的 DataContractResolver 實作。 |
DataContractSurrogate |
取得或設定進行序列化和還原序列化程序時要使用的 Surrogate。 |
IgnoreExtensionDataObject |
取得或設定值,這個值會指定是否忽略某型別延伸提供的資料 (因此不在資料合約中)。 |
MaxItemsInObjectGraph |
取得或設定物件圖形中要序列化或還原序列化的最大項目數。 |
SerializationSurrogateProvider |
取得或設定進行序列化與還原序列化程序時要使用的 Surrogate 提供者。 |
方法
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) |