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
- ApplicationFileParser.cs
- Vector3DCollectionConverter.cs
- CodeTypeReferenceSerializer.cs
- DataGridViewAccessibleObject.cs
- ConfigurationSectionGroupCollection.cs
- ToolStripLocationCancelEventArgs.cs
- DataSourceXmlClassAttribute.cs
- DynamicDataRouteHandler.cs
- BypassElementCollection.cs
- RawMouseInputReport.cs
- CatalogZone.cs
- PathSegment.cs
- PreservationFileReader.cs
- WebPartDisplayModeCancelEventArgs.cs
- HtmlInputRadioButton.cs
- ActivityBindForm.cs
- MatrixTransform.cs
- XmlLinkedNode.cs
- DbProviderSpecificTypePropertyAttribute.cs
- assertwrapper.cs
- ToolBarButton.cs
- PerformanceCounterCategory.cs
- LoadedOrUnloadedOperation.cs
- CompositeCollection.cs
- SaveWorkflowAsyncResult.cs
- CheckBoxFlatAdapter.cs
- LostFocusEventManager.cs
- HttpRequest.cs
- WindowsGraphicsCacheManager.cs
- StatusBarPanelClickEvent.cs
- CacheSection.cs
- FormClosingEvent.cs
- TypeSystemHelpers.cs
- DateTimeConverter.cs
- TableProviderWrapper.cs
- Point3DCollectionConverter.cs
- BitmapEffect.cs
- SiteMapDataSourceView.cs
- IPCCacheManager.cs
- MostlySingletonList.cs
- OleDbCommandBuilder.cs
- Triplet.cs
- MetafileHeader.cs
- BuildProviderCollection.cs
- MsdtcClusterUtils.cs
- BamlLocalizableResourceKey.cs
- BamlLocalizableResourceKey.cs
- DesignerFrame.cs
- UmAlQuraCalendar.cs
- WorkerRequest.cs
- FontDialog.cs
- SemanticValue.cs
- ScaleTransform3D.cs
- ClientSideQueueItem.cs
- ObjectListField.cs
- SqlDataRecord.cs
- ImageCodecInfoPrivate.cs
- WebBrowserSiteBase.cs
- RequestCacheEntry.cs
- ProcessHostFactoryHelper.cs
- WeakRefEnumerator.cs
- FixedHighlight.cs
- TextTreeExtractElementUndoUnit.cs
- _OverlappedAsyncResult.cs
- JsonReaderWriterFactory.cs
- GroupBoxAutomationPeer.cs
- VisualStyleInformation.cs
- WindowsSecurityToken.cs
- DropShadowBitmapEffect.cs
- BaseDataBoundControl.cs
- AttributeCollection.cs
- DataProtection.cs
- KoreanLunisolarCalendar.cs
- ConfigXmlElement.cs
- XmlSortKeyAccumulator.cs
- ReadOnlyHierarchicalDataSourceView.cs
- WindowsSidIdentity.cs
- TableItemStyle.cs
- QueryCacheManager.cs
- HtmlTable.cs
- SecurityRuntime.cs
- NameNode.cs
- FamilyMapCollection.cs
- PerformanceCounterManager.cs
- TextElement.cs
- HttpCachePolicyElement.cs
- FeatureSupport.cs
- CollectionContainer.cs
- SmtpClient.cs
- SettingsAttributeDictionary.cs
- LZCodec.cs
- DataSourceProvider.cs
- PersonalizationAdministration.cs
- FieldDescriptor.cs
- StylusPointProperty.cs
- PointCollection.cs
- WebBrowserNavigatedEventHandler.cs
- IdentityManager.cs
- CodeDelegateInvokeExpression.cs
- BaseTemplateBuildProvider.cs