Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Dispatcher / DataContractSerializerServiceBehavior.cs / 1 / DataContractSerializerServiceBehavior.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Dispatcher { using System.ServiceModel.Channels; using System.ServiceModel; using System.ServiceModel.Description; using System.Runtime.Serialization; using System.Collections.ObjectModel; using System.Collections.Generic; internal class DataContractSerializerServiceBehavior : IServiceBehavior, IEndpointBehavior { bool ignoreExtensionDataObject; int maxItemsInObjectGraph; internal DataContractSerializerServiceBehavior(bool ignoreExtensionDataObject, int maxItemsInObjectGraph) { this.ignoreExtensionDataObject = ignoreExtensionDataObject; this.maxItemsInObjectGraph = maxItemsInObjectGraph; } public bool IgnoreExtensionDataObject { get { return this.ignoreExtensionDataObject; } set { this.ignoreExtensionDataObject = value; } } public int MaxItemsInObjectGraph { get { return this.maxItemsInObjectGraph; } set { this.maxItemsInObjectGraph = value; } } void IServiceBehavior.Validate(ServiceDescription description, ServiceHostBase serviceHostBase) { } void IServiceBehavior.AddBindingParameters(ServiceDescription description, ServiceHostBase serviceHostBase, Collectionendpoints, BindingParameterCollection parameters) { } void IServiceBehavior.ApplyDispatchBehavior(ServiceDescription description, ServiceHostBase serviceHostBase) { ApplySerializationSettings(description, ignoreExtensionDataObject, maxItemsInObjectGraph); } void IEndpointBehavior.Validate(ServiceEndpoint serviceEndpoint) { } void IEndpointBehavior.AddBindingParameters(ServiceEndpoint serviceEndpoint, BindingParameterCollection parameters) { } void IEndpointBehavior.ApplyClientBehavior(ServiceEndpoint serviceEndpoint, ClientRuntime clientRuntime) { ApplySerializationSettings(serviceEndpoint, ignoreExtensionDataObject, maxItemsInObjectGraph); } void IEndpointBehavior.ApplyDispatchBehavior(ServiceEndpoint serviceEndpoint, EndpointDispatcher endpointDispatcher) { ApplySerializationSettings(serviceEndpoint, ignoreExtensionDataObject, maxItemsInObjectGraph); } internal static void ApplySerializationSettings(ServiceDescription description, bool ignoreExtensionDataObject, int maxItemsInObjectGraph) { foreach (ServiceEndpoint endpoint in description.Endpoints) { if(!ServiceMetadataBehavior.IsMetadataEndpoint(description, endpoint)) { ApplySerializationSettings(endpoint, ignoreExtensionDataObject, maxItemsInObjectGraph); } } } internal static void ApplySerializationSettings(ServiceEndpoint endpoint, bool ignoreExtensionDataObject, int maxItemsInObjectGraph) { foreach (OperationDescription operation in endpoint.Contract.Operations) { foreach (IOperationBehavior ob in operation.Behaviors) { if (ob is DataContractSerializerOperationBehavior) { DataContractSerializerOperationBehavior behavior = (DataContractSerializerOperationBehavior)ob; if (behavior != null) { if (!behavior.IgnoreExtensionDataObjectSetExplicit) { behavior.ignoreExtensionDataObject = ignoreExtensionDataObject; } if (!behavior.MaxItemsInObjectGraphSetExplicit) { behavior.maxItemsInObjectGraph = maxItemsInObjectGraph; } } } } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- isolationinterop.cs
- PassportIdentity.cs
- entitydatasourceentitysetnameconverter.cs
- wgx_exports.cs
- ReadContentAsBinaryHelper.cs
- KnownColorTable.cs
- FragmentQueryProcessor.cs
- ImmComposition.cs
- TreeView.cs
- uribuilder.cs
- WinFormsSpinner.cs
- CaseInsensitiveComparer.cs
- RecognizeCompletedEventArgs.cs
- documentsequencetextview.cs
- SHA512.cs
- SqlWebEventProvider.cs
- BuilderPropertyEntry.cs
- Stylus.cs
- TemplateInstanceAttribute.cs
- Int32AnimationUsingKeyFrames.cs
- Dump.cs
- RowType.cs
- NonBatchDirectoryCompiler.cs
- AppDomainManager.cs
- EventWaitHandle.cs
- ToolStripTextBox.cs
- SqlHelper.cs
- ConnectionPointCookie.cs
- IdentifierService.cs
- FeatureManager.cs
- SQLMoney.cs
- OrderedDictionary.cs
- PackagePart.cs
- selecteditemcollection.cs
- precedingsibling.cs
- DependencyPropertyChangedEventArgs.cs
- EntitySetBaseCollection.cs
- PropertyTab.cs
- Vector3D.cs
- GridViewPageEventArgs.cs
- MeasureItemEvent.cs
- TypedRowGenerator.cs
- Ref.cs
- Encoding.cs
- WmlMobileTextWriter.cs
- SelectionListDesigner.cs
- WebPartActionVerb.cs
- TimeZoneNotFoundException.cs
- ComponentDispatcher.cs
- SpecularMaterial.cs
- Unit.cs
- ProfileSettings.cs
- Encoder.cs
- EntityDataSourceContextDisposingEventArgs.cs
- HttpRuntime.cs
- BaseTreeIterator.cs
- MemberDomainMap.cs
- PropertyDescriptors.cs
- ImportCatalogPart.cs
- RelatedImageListAttribute.cs
- Vector3D.cs
- AmbientLight.cs
- Variable.cs
- UnsafeNativeMethods.cs
- ClientSettingsProvider.cs
- SaveFileDialogDesigner.cs
- LogWriteRestartAreaState.cs
- Opcode.cs
- DbConvert.cs
- URI.cs
- DecoderFallbackWithFailureFlag.cs
- ObjectManager.cs
- ExpressionBinding.cs
- DrawingAttributeSerializer.cs
- DataGridViewCellStateChangedEventArgs.cs
- IncrementalHitTester.cs
- DesignerValidationSummaryAdapter.cs
- AsnEncodedData.cs
- CodeBinaryOperatorExpression.cs
- CommandCollectionEditor.cs
- DesignerCapabilities.cs
- CreatingCookieEventArgs.cs
- StringToken.cs
- GridViewPageEventArgs.cs
- NativeObjectSecurity.cs
- TypeHelper.cs
- CurrentChangingEventArgs.cs
- DesignerVerb.cs
- ConfigsHelper.cs
- Item.cs
- GorillaCodec.cs
- EncodingFallbackAwareXmlTextWriter.cs
- ConfigurationSettings.cs
- QueryOutputWriter.cs
- OnOperation.cs
- mda.cs
- ObjectQueryExecutionPlan.cs
- IncrementalHitTester.cs
- WindowsToolbarAsMenu.cs
- WeakReferenceList.cs