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
- BookmarkEventArgs.cs
- ProtectedProviderSettings.cs
- HashCodeCombiner.cs
- UserValidatedEventArgs.cs
- AutomationPeer.cs
- ItemMap.cs
- KnownBoxes.cs
- DeadCharTextComposition.cs
- MLangCodePageEncoding.cs
- FaultHandlingFilter.cs
- Helper.cs
- JsonObjectDataContract.cs
- SystemWebSectionGroup.cs
- SendKeys.cs
- GridErrorDlg.cs
- ContractSearchPattern.cs
- DataBoundLiteralControl.cs
- StringAnimationUsingKeyFrames.cs
- PointKeyFrameCollection.cs
- SessionParameter.cs
- NamedPipeAppDomainProtocolHandler.cs
- XmlTextReaderImplHelpers.cs
- ReadOnlyCollectionBuilder.cs
- GacUtil.cs
- LocatorManager.cs
- ScriptIgnoreAttribute.cs
- ComplexPropertyEntry.cs
- EntityDesignerUtils.cs
- SudsWriter.cs
- MethodMessage.cs
- TTSVoice.cs
- XpsS0ValidatingLoader.cs
- SoundPlayer.cs
- COM2PropertyDescriptor.cs
- DateTimeOffsetAdapter.cs
- ControlPaint.cs
- WebHeaderCollection.cs
- TokenFactoryBase.cs
- XpsSerializationManager.cs
- TypeInfo.cs
- XmlDesignerDataSourceView.cs
- ChannelServices.cs
- KeyValueConfigurationCollection.cs
- BitmapEffectState.cs
- SettingsPropertyValue.cs
- ByteStreamMessageUtility.cs
- ErrorEventArgs.cs
- EpmSourceTree.cs
- XamlSerializationHelper.cs
- ImportFileRequest.cs
- TemplatePropertyEntry.cs
- TraceUtility.cs
- PackageRelationshipSelector.cs
- BufferManager.cs
- GridItemCollection.cs
- ParserStreamGeometryContext.cs
- versioninfo.cs
- MsmqVerifier.cs
- MetadataExchangeClient.cs
- SimpleType.cs
- OrderedEnumerableRowCollection.cs
- ResetableIterator.cs
- StandardTransformFactory.cs
- BindingsSection.cs
- ContentType.cs
- DataProviderNameConverter.cs
- WorkflowClientDeliverMessageWrapper.cs
- MenuBase.cs
- SoapMessage.cs
- Vector3DKeyFrameCollection.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- CallTemplateAction.cs
- Adorner.cs
- OleDbCommandBuilder.cs
- ItemsChangedEventArgs.cs
- SourceInterpreter.cs
- FontWeights.cs
- MaskedTextBoxTextEditor.cs
- RegexMatchCollection.cs
- SQLRoleProvider.cs
- SmtpFailedRecipientsException.cs
- WindowsListViewSubItem.cs
- AuthenticationSection.cs
- ObjectCloneHelper.cs
- SemaphoreFullException.cs
- EventHandlerList.cs
- StringReader.cs
- ParameterCollectionEditorForm.cs
- ContainerParaClient.cs
- ImageSource.cs
- ComboBoxRenderer.cs
- DataTableExtensions.cs
- HandlerFactoryCache.cs
- ActivityExecutionContextCollection.cs
- WebPartTracker.cs
- CanonicalFontFamilyReference.cs
- Ray3DHitTestResult.cs
- GcSettings.cs
- IEnumerable.cs
- MulticastNotSupportedException.cs