Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / Serialization / System / Xml / XmlDictionaryReaderQuotas.cs / 1 / XmlDictionaryReaderQuotas.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.Xml { using System.Runtime.Serialization; 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; } 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; } } 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; } } 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; } } 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; } } 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. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TypeResolvingOptionsAttribute.cs
- BoundPropertyEntry.cs
- RegularExpressionValidator.cs
- XDeferredAxisSource.cs
- DBNull.cs
- ActivityExecutorSurrogate.cs
- StringValueSerializer.cs
- GradientBrush.cs
- SocketAddress.cs
- AlternateView.cs
- DecoderFallback.cs
- FileEnumerator.cs
- Form.cs
- LinkClickEvent.cs
- EntityWrapperFactory.cs
- ChameleonKey.cs
- handlecollector.cs
- JavaScriptObjectDeserializer.cs
- FileEnumerator.cs
- CompensatableTransactionScopeActivity.cs
- InvokeHandlers.cs
- SamlAuthorityBinding.cs
- HealthMonitoringSection.cs
- HtmlTextArea.cs
- Soap11ServerProtocol.cs
- DeferredReference.cs
- WebPartTransformerAttribute.cs
- XmlAttributeProperties.cs
- ResourceDefaultValueAttribute.cs
- Selector.cs
- XmlAutoDetectWriter.cs
- cookiecontainer.cs
- ToolStrip.cs
- NetworkInformationException.cs
- HtmlInputCheckBox.cs
- Metafile.cs
- ContextConfiguration.cs
- PropertyValue.cs
- SchemaConstraints.cs
- ServiceMoniker.cs
- FusionWrap.cs
- ProbeMatchesApril2005.cs
- QueryOutputWriter.cs
- DatePicker.cs
- HostedTransportConfigurationManager.cs
- ApplicationSecurityInfo.cs
- SessionStateContainer.cs
- ConnectionStringSettingsCollection.cs
- FloaterBaseParagraph.cs
- DiscardableAttribute.cs
- OrderedDictionary.cs
- ReceiveParametersContent.cs
- ConfigurationManagerHelper.cs
- InvalidComObjectException.cs
- ExtensionWindowHeader.cs
- HelloMessageApril2005.cs
- CodeTypeReferenceExpression.cs
- EntitySetBase.cs
- GridViewAutomationPeer.cs
- SourceSwitch.cs
- DataViewListener.cs
- PkcsMisc.cs
- Vertex.cs
- Expressions.cs
- ParallelTimeline.cs
- OnOperation.cs
- InvalidMessageContractException.cs
- webeventbuffer.cs
- NodeFunctions.cs
- DecimalConstantAttribute.cs
- MimeFormatter.cs
- SortDescription.cs
- httpstaticobjectscollection.cs
- ListViewDeleteEventArgs.cs
- EventLog.cs
- SmtpNegotiateAuthenticationModule.cs
- SurrogateSelector.cs
- GatewayIPAddressInformationCollection.cs
- QilChoice.cs
- Compiler.cs
- ZipIORawDataFileBlock.cs
- NativeMethodsOther.cs
- PaginationProgressEventArgs.cs
- ReadWriteSpinLock.cs
- UxThemeWrapper.cs
- Activity.cs
- COM2DataTypeToManagedDataTypeConverter.cs
- AttachedPropertiesService.cs
- ConfigurationLocationCollection.cs
- SqlMethodAttribute.cs
- XmlDataSourceView.cs
- SimpleApplicationHost.cs
- WebBrowserEvent.cs
- QilStrConcat.cs
- Soap.cs
- KeyValuePairs.cs
- DataGridViewCellValidatingEventArgs.cs
- HtmlAnchor.cs
- PropertyEntry.cs
- ProviderCollection.cs