Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Channels / TextMessageEncodingBindingElement.cs / 1 / TextMessageEncodingBindingElement.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Channels { using System.Collections.Generic; using System.ServiceModel.Description; using System.Text; using System.Runtime.Serialization; using System.ServiceModel.Channels; using System.ServiceModel; using System.Xml; public sealed class TextMessageEncodingBindingElement : MessageEncodingBindingElement, IWsdlExportExtension, IPolicyExportExtension { int maxReadPoolSize; int maxWritePoolSize; XmlDictionaryReaderQuotas readerQuotas; MessageVersion messageVersion; Encoding writeEncoding; public TextMessageEncodingBindingElement() : this(MessageVersion.Default, TextEncoderDefaults.Encoding) { } public TextMessageEncodingBindingElement(MessageVersion messageVersion, Encoding writeEncoding) { if (messageVersion == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("messageVersion"); if (writeEncoding == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("writeEncoding"); TextEncoderDefaults.ValidateEncoding(writeEncoding); this.maxReadPoolSize = EncoderDefaults.MaxReadPoolSize; this.maxWritePoolSize = EncoderDefaults.MaxWritePoolSize; this.readerQuotas = new XmlDictionaryReaderQuotas(); EncoderDefaults.ReaderQuotas.CopyTo(this.readerQuotas); this.messageVersion = messageVersion; this.writeEncoding = writeEncoding; } TextMessageEncodingBindingElement(TextMessageEncodingBindingElement elementToBeCloned) : base(elementToBeCloned) { this.maxReadPoolSize = elementToBeCloned.maxReadPoolSize; this.maxWritePoolSize = elementToBeCloned.maxWritePoolSize; this.readerQuotas = new XmlDictionaryReaderQuotas(); elementToBeCloned.readerQuotas.CopyTo(this.readerQuotas); this.writeEncoding = elementToBeCloned.writeEncoding; this.messageVersion = elementToBeCloned.messageVersion; } public int MaxReadPoolSize { get { return this.maxReadPoolSize; } set { if (value <= 0) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value", value, SR.GetString(SR.ValueMustBePositive))); } this.maxReadPoolSize = value; } } public int MaxWritePoolSize { get { return this.maxWritePoolSize; } set { if (value <= 0) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value", value, SR.GetString(SR.ValueMustBePositive))); } this.maxWritePoolSize = value; } } public XmlDictionaryReaderQuotas ReaderQuotas { get { return this.readerQuotas; } } public override MessageVersion MessageVersion { get { return this.messageVersion; } set { if (value == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("value"); } this.messageVersion = value; } } public Encoding WriteEncoding { get { return this.writeEncoding; } set { if (value == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("value"); } TextEncoderDefaults.ValidateEncoding(value); this.writeEncoding = value; } } public override IChannelFactoryBuildChannelFactory (BindingContext context) { return InternalBuildChannelFactory (context); } public override IChannelListener BuildChannelListener (BindingContext context) { return InternalBuildChannelListener (context); } public override bool CanBuildChannelListener (BindingContext context) { return InternalCanBuildChannelListener (context); } public override BindingElement Clone() { return new TextMessageEncodingBindingElement(this); } public override MessageEncoderFactory CreateMessageEncoderFactory() { return new TextMessageEncoderFactory(MessageVersion, WriteEncoding, this.MaxReadPoolSize, this.MaxWritePoolSize, this.ReaderQuotas); } public override T GetProperty (BindingContext context) { if (context == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context"); } if (typeof(T) == typeof(XmlDictionaryReaderQuotas)) { return (T)(object)this.readerQuotas; } else { return base.GetProperty (context); } } void IPolicyExportExtension.ExportPolicy(MetadataExporter exporter, PolicyConversionContext context) { if (context == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context"); } } void IWsdlExportExtension.ExportContract(WsdlExporter exporter, WsdlContractConversionContext context) { } void IWsdlExportExtension.ExportEndpoint(WsdlExporter exporter, WsdlEndpointConversionContext context) { if (context == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context"); } SoapHelper.SetSoapVersion(context, exporter, this.messageVersion.Envelope); } internal override bool CheckEncodingVersion(EnvelopeVersion version) { return messageVersion.Envelope == version; } internal override bool IsMatch(BindingElement b) { if (!base.IsMatch(b)) return false; TextMessageEncodingBindingElement text = b as TextMessageEncodingBindingElement; if (text == null) return false; if (this.maxReadPoolSize != text.MaxReadPoolSize) return false; if (this.maxWritePoolSize != text.MaxWritePoolSize) return false; // compare XmlDictionaryReaderQuotas if (this.readerQuotas.MaxStringContentLength != text.ReaderQuotas.MaxStringContentLength) return false; if (this.readerQuotas.MaxArrayLength != text.ReaderQuotas.MaxArrayLength) return false; if (this.readerQuotas.MaxBytesPerRead != text.ReaderQuotas.MaxBytesPerRead) return false; if (this.readerQuotas.MaxDepth != text.ReaderQuotas.MaxDepth) return false; if (this.readerQuotas.MaxNameTableCharCount != text.ReaderQuotas.MaxNameTableCharCount) return false; if (this.WriteEncoding.EncodingName != text.WriteEncoding.EncodingName) return false; if (!this.MessageVersion.IsMatch(text.MessageVersion)) return false; return true; } } } // 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
- UpdateDelegates.Generated.cs
- DrawToolTipEventArgs.cs
- UInt32.cs
- MsmqIntegrationProcessProtocolHandler.cs
- WinEventHandler.cs
- WindowsScroll.cs
- TextTreePropertyUndoUnit.cs
- GeneralTransform3DGroup.cs
- UriWriter.cs
- TransformerInfoCollection.cs
- __Filters.cs
- DocumentViewerConstants.cs
- FormsAuthenticationUser.cs
- PropertyChangedEventManager.cs
- SafeFileMappingHandle.cs
- OdbcReferenceCollection.cs
- SamlConstants.cs
- odbcmetadatacolumnnames.cs
- ExtendedProtectionPolicyElement.cs
- TextEditorLists.cs
- XmlNamedNodeMap.cs
- TraceData.cs
- TypedMessageConverter.cs
- DoubleLink.cs
- DateTimeConverter.cs
- SubclassTypeValidator.cs
- WebPageTraceListener.cs
- HttpInputStream.cs
- ByteStreamGeometryContext.cs
- IPipelineRuntime.cs
- ComNativeDescriptor.cs
- DeviceFiltersSection.cs
- ScriptReferenceBase.cs
- EventProxy.cs
- PersonalizationProviderCollection.cs
- ClientRoleProvider.cs
- mediaclock.cs
- AlignmentYValidation.cs
- WebPartVerbsEventArgs.cs
- ResXResourceSet.cs
- TypeSystem.cs
- XmlSerializerFactory.cs
- ProxyWebPart.cs
- HttpCookie.cs
- ChtmlMobileTextWriter.cs
- SmtpNetworkElement.cs
- CollectionChangeEventArgs.cs
- ObservableCollection.cs
- Vector3D.cs
- ObjectQueryProvider.cs
- _NegoState.cs
- VerticalAlignConverter.cs
- sitestring.cs
- SafeNativeMemoryHandle.cs
- LinqDataSource.cs
- FtpWebResponse.cs
- SqlRowUpdatedEvent.cs
- HttpPostLocalhostServerProtocol.cs
- ObjectContext.cs
- DragDeltaEventArgs.cs
- TdsParserSessionPool.cs
- ResourceManager.cs
- XmlDeclaration.cs
- XmlDataDocument.cs
- InvalidateEvent.cs
- IntegerValidator.cs
- ByteRangeDownloader.cs
- AccessedThroughPropertyAttribute.cs
- DataGridTablesFactory.cs
- BridgeDataReader.cs
- XmlHierarchicalEnumerable.cs
- SolidColorBrush.cs
- RowsCopiedEventArgs.cs
- ManagedWndProcTracker.cs
- ReservationCollection.cs
- DataFieldConverter.cs
- SoundPlayerAction.cs
- SynchronizedDispatch.cs
- DictionarySectionHandler.cs
- AppDomain.cs
- CharEntityEncoderFallback.cs
- DesignSurfaceManager.cs
- RequestCachePolicy.cs
- _DomainName.cs
- CuspData.cs
- UnsafeNativeMethods.cs
- _Win32.cs
- SignerInfo.cs
- Buffer.cs
- AuthorizationSection.cs
- CompileLiteralTextParser.cs
- AxDesigner.cs
- SerializationStore.cs
- ReverseComparer.cs
- CorrelationScope.cs
- ModelItemDictionary.cs
- SecurityTokenResolver.cs
- SizeAnimationClockResource.cs
- Bezier.cs
- VerificationAttribute.cs