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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- EtwTrace.cs
- KeyGestureValueSerializer.cs
- ErrorHandler.cs
- Tool.cs
- WebServiceErrorEvent.cs
- MenuItemBinding.cs
- HtmlToClrEventProxy.cs
- HostingMessageProperty.cs
- SettingsSavedEventArgs.cs
- FragmentQueryKB.cs
- XmlQualifiedNameTest.cs
- SerializationAttributes.cs
- ClassValidator.cs
- HostSecurityManager.cs
- WebResourceUtil.cs
- SmtpClient.cs
- BindableAttribute.cs
- ValuePattern.cs
- SafeNativeMethods.cs
- DataColumnCollection.cs
- PerCallInstanceContextProvider.cs
- DefaultCommandConverter.cs
- SelectQueryOperator.cs
- TextSegment.cs
- TouchDevice.cs
- OuterGlowBitmapEffect.cs
- BinaryMethodMessage.cs
- UpdatableWrapper.cs
- ContentPresenter.cs
- DataServiceException.cs
- Positioning.cs
- GifBitmapEncoder.cs
- SimpleExpression.cs
- ScrollBarAutomationPeer.cs
- DrawToolTipEventArgs.cs
- VerticalConnector.xaml.cs
- FontWeights.cs
- TypeSystem.cs
- TabControl.cs
- CatalogPart.cs
- SchemaSetCompiler.cs
- ColumnResizeUndoUnit.cs
- ResourceSet.cs
- BamlVersionHeader.cs
- WebPartDisplayModeCollection.cs
- serverconfig.cs
- XslCompiledTransform.cs
- PeerCollaborationPermission.cs
- ServiceOperationParameter.cs
- XmlQueryCardinality.cs
- DecimalMinMaxAggregationOperator.cs
- X509AsymmetricSecurityKey.cs
- Duration.cs
- UIElement.cs
- GridViewCommandEventArgs.cs
- SmiContextFactory.cs
- SqlGenericUtil.cs
- CompensationToken.cs
- RSAPKCS1SignatureDeformatter.cs
- Transform.cs
- PlanCompilerUtil.cs
- HyperLinkColumn.cs
- LinkLabelLinkClickedEvent.cs
- SamlNameIdentifierClaimResource.cs
- HostedTransportConfigurationBase.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- CompoundFileIOPermission.cs
- NameValueSectionHandler.cs
- DbSetClause.cs
- SpellerError.cs
- Version.cs
- StrongNameIdentityPermission.cs
- SqlDataSourceCustomCommandPanel.cs
- TextRangeProviderWrapper.cs
- UniqueConstraint.cs
- FamilyTypefaceCollection.cs
- WebControlToolBoxItem.cs
- GuidConverter.cs
- TrackingLocationCollection.cs
- MessageFilterTable.cs
- HttpWebResponse.cs
- EnumerableRowCollectionExtensions.cs
- DataBoundControlAdapter.cs
- AmbiguousMatchException.cs
- ProxyHwnd.cs
- DataGridColumn.cs
- ScrollBar.cs
- ArgumentException.cs
- SpellerInterop.cs
- GridEntryCollection.cs
- ToolStripItem.cs
- DataDocumentXPathNavigator.cs
- DataGridAutoGeneratingColumnEventArgs.cs
- TypeConverterMarkupExtension.cs
- FontConverter.cs
- HtmlInputCheckBox.cs
- ParameterCollection.cs
- ContextStaticAttribute.cs
- DetailsViewUpdateEventArgs.cs
- FlowDocumentPage.cs