Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / Serialization / System / Xml / XmlDictionaryReaderQuotas.cs / 1305376 / XmlDictionaryReaderQuotas.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.Xml { using System.Runtime.Serialization; using System.ComponentModel; public sealed class XmlDictionaryReaderQuotas { bool readOnly; int maxStringContentLength; int maxArrayLength; int maxDepth; int maxNameTableCharCount; int maxBytesPerRead; const int DefaultMaxDepth = 32; const int DefaultMaxStringContentLength = 8192; const int DefaultMaxArrayLength = 16384; const int DefaultMaxBytesPerRead = 4096; const int DefaultMaxNameTableCharCount = 16384; static XmlDictionaryReaderQuotas defaultQuota = new XmlDictionaryReaderQuotas(DefaultMaxDepth, DefaultMaxStringContentLength, DefaultMaxArrayLength, DefaultMaxBytesPerRead, DefaultMaxNameTableCharCount); static XmlDictionaryReaderQuotas maxQuota = new XmlDictionaryReaderQuotas(int.MaxValue, int.MaxValue, int.MaxValue, int.MaxValue, int.MaxValue); public XmlDictionaryReaderQuotas() { defaultQuota.CopyTo(this); } XmlDictionaryReaderQuotas(int maxDepth, int maxStringContentLength, int maxArrayLength, int maxBytesPerRead, int maxNameTableCharCount) { this.maxDepth = maxDepth; this.maxStringContentLength = maxStringContentLength; this.maxArrayLength = maxArrayLength; this.maxBytesPerRead = maxBytesPerRead; this.maxNameTableCharCount = maxNameTableCharCount; MakeReadOnly(); } static public XmlDictionaryReaderQuotas Max { get { return maxQuota; } } public void CopyTo(XmlDictionaryReaderQuotas quotas) { if (quotas == null) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("quotas")); if (quotas.readOnly) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.QuotaCopyReadOnly))); InternalCopyTo(quotas); } internal void InternalCopyTo(XmlDictionaryReaderQuotas quotas) { quotas.maxStringContentLength = this.maxStringContentLength; quotas.maxArrayLength = this.maxArrayLength; quotas.maxDepth = this.MaxDepth; quotas.maxNameTableCharCount = this.maxNameTableCharCount; quotas.maxBytesPerRead = this.maxBytesPerRead; } [DefaultValue(DefaultMaxStringContentLength)] public int MaxStringContentLength { get { return maxStringContentLength; } set { if (readOnly) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.QuotaIsReadOnly, "MaxStringContentLength"))); if (value <= 0) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(SR.GetString(SR.QuotaMustBePositive), "value")); maxStringContentLength = value; } } [DefaultValue(DefaultMaxArrayLength)] public int MaxArrayLength { get { return maxArrayLength; } set { if (readOnly) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.QuotaIsReadOnly, "MaxArrayLength"))); if (value <= 0) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(SR.GetString(SR.QuotaMustBePositive), "value")); maxArrayLength = value; } } [DefaultValue(DefaultMaxBytesPerRead)] public int MaxBytesPerRead { get { return maxBytesPerRead; } set { if (readOnly) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.QuotaIsReadOnly, "MaxBytesPerRead"))); if (value <= 0) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(SR.GetString(SR.QuotaMustBePositive), "value")); maxBytesPerRead = value; } } [DefaultValue(DefaultMaxDepth)] public int MaxDepth { get { return maxDepth; } set { if (readOnly) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.QuotaIsReadOnly, "MaxDepth"))); if (value <= 0) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(SR.GetString(SR.QuotaMustBePositive), "value")); maxDepth = value; } } [DefaultValue(DefaultMaxNameTableCharCount)] public int MaxNameTableCharCount { get { return maxNameTableCharCount; } set { if (readOnly) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.QuotaIsReadOnly, "MaxNameTableCharCount"))); if (value <= 0) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(SR.GetString(SR.QuotaMustBePositive), "value")); maxNameTableCharCount = value; } } internal void MakeReadOnly() { this.readOnly = true; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- BaseTemplateBuildProvider.cs
- GridViewRowPresenter.cs
- Internal.cs
- DataListItemCollection.cs
- ShapingWorkspace.cs
- AuthorizationContext.cs
- BooleanAnimationBase.cs
- XsltException.cs
- WebPartChrome.cs
- RankException.cs
- ValidationEventArgs.cs
- DSASignatureFormatter.cs
- GridViewRowPresenterBase.cs
- VolatileResourceManager.cs
- DocumentApplicationJournalEntry.cs
- BitmapCodecInfo.cs
- TableCell.cs
- QueryInterceptorAttribute.cs
- DataGridViewDataErrorEventArgs.cs
- AssemblyCollection.cs
- DataError.cs
- StringValueSerializer.cs
- EmbeddedMailObjectCollectionEditor.cs
- ProxyFragment.cs
- PersistencePipeline.cs
- Sql8ExpressionRewriter.cs
- PseudoWebRequest.cs
- Converter.cs
- PointValueSerializer.cs
- ComponentChangingEvent.cs
- AppDomainProtocolHandler.cs
- FormView.cs
- ExceptionUtil.cs
- MimeTypePropertyAttribute.cs
- EditModeSwitchButton.cs
- DashStyles.cs
- WindowsEditBoxRange.cs
- ObjectDataSourceDisposingEventArgs.cs
- ToolStripRendererSwitcher.cs
- WebHttpSecurity.cs
- SupportingTokenSecurityTokenResolver.cs
- RootNamespaceAttribute.cs
- SqlGatherProducedAliases.cs
- TrackBarDesigner.cs
- SizeLimitedCache.cs
- MasterPageBuildProvider.cs
- DataGridAutoFormat.cs
- XmlSchemaSimpleContent.cs
- FixedDocumentSequencePaginator.cs
- BasePattern.cs
- XmlHelper.cs
- EndpointDiscoveryBehavior.cs
- InvalidContentTypeException.cs
- XPathBinder.cs
- SQLInt64Storage.cs
- EntityRecordInfo.cs
- HashAlgorithm.cs
- SecurityTokenException.cs
- PropertyMetadata.cs
- IntAverageAggregationOperator.cs
- RawStylusInputCustomDataList.cs
- ExpandableObjectConverter.cs
- PropertyChangedEventManager.cs
- ConditionValidator.cs
- BamlRecordReader.cs
- ImpersonateTokenRef.cs
- GenericPrincipal.cs
- TextRangeEdit.cs
- IssuedTokenClientBehaviorsElementCollection.cs
- MgmtConfigurationRecord.cs
- _ListenerRequestStream.cs
- RuntimeConfigLKG.cs
- SafeNativeMethods.cs
- DataGridTable.cs
- CachedPathData.cs
- ListBoxItem.cs
- StorageComplexTypeMapping.cs
- AnnotationHighlightLayer.cs
- ImmutableCollection.cs
- CollectionBase.cs
- ThreadPool.cs
- ChineseLunisolarCalendar.cs
- ProjectionCamera.cs
- DataRow.cs
- oledbconnectionstring.cs
- DataObjectEventArgs.cs
- AdRotator.cs
- Stroke.cs
- OrCondition.cs
- PathGradientBrush.cs
- DispatcherFrame.cs
- SystemParameters.cs
- SqlProvider.cs
- PostBackOptions.cs
- MLangCodePageEncoding.cs
- StateChangeEvent.cs
- NamespaceQuery.cs
- VerticalAlignConverter.cs
- EventLogger.cs
- GenericsNotImplementedException.cs