e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
115 lines
4.7 KiB
C#
115 lines
4.7 KiB
C#
//------------------------------------------------------------------------------
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//------------------------------------------------------------------------------
|
|
|
|
namespace System.ServiceModel.Configuration
|
|
{
|
|
using System.Configuration;
|
|
using System.Globalization;
|
|
using System.Net;
|
|
using System.Xml;
|
|
using System.ServiceModel;
|
|
using System.ComponentModel;
|
|
using System.ServiceModel.Channels;
|
|
|
|
public sealed partial class XmlDictionaryReaderQuotasElement : ServiceModelConfigurationElement
|
|
{
|
|
// for all properties, a value of 0 means "just use the default"
|
|
[ConfigurationProperty(ConfigurationStrings.MaxDepth, DefaultValue = 0)]
|
|
[IntegerValidator(MinValue = 0)]
|
|
public int MaxDepth
|
|
{
|
|
get { return (int)base[ConfigurationStrings.MaxDepth]; }
|
|
set { base[ConfigurationStrings.MaxDepth] = value; }
|
|
}
|
|
|
|
[ConfigurationProperty(ConfigurationStrings.MaxStringContentLength, DefaultValue = 0)]
|
|
[IntegerValidator(MinValue = 0)]
|
|
public int MaxStringContentLength
|
|
{
|
|
get { return (int)base[ConfigurationStrings.MaxStringContentLength]; }
|
|
set { base[ConfigurationStrings.MaxStringContentLength] = value; }
|
|
}
|
|
|
|
[ConfigurationProperty(ConfigurationStrings.MaxArrayLength, DefaultValue = 0)]
|
|
[IntegerValidator(MinValue = 0)]
|
|
public int MaxArrayLength
|
|
{
|
|
get { return (int)base[ConfigurationStrings.MaxArrayLength]; }
|
|
set { base[ConfigurationStrings.MaxArrayLength] = value; }
|
|
}
|
|
|
|
[ConfigurationProperty(ConfigurationStrings.MaxBytesPerRead, DefaultValue = 0)]
|
|
[IntegerValidator(MinValue = 0)]
|
|
public int MaxBytesPerRead
|
|
{
|
|
get { return (int)base[ConfigurationStrings.MaxBytesPerRead]; }
|
|
set { base[ConfigurationStrings.MaxBytesPerRead] = value; }
|
|
}
|
|
|
|
[ConfigurationProperty(ConfigurationStrings.MaxNameTableCharCount, DefaultValue = 0)]
|
|
[IntegerValidator(MinValue = 0)]
|
|
public int MaxNameTableCharCount
|
|
{
|
|
get { return (int)base[ConfigurationStrings.MaxNameTableCharCount]; }
|
|
set { base[ConfigurationStrings.MaxNameTableCharCount] = value; }
|
|
}
|
|
|
|
internal void ApplyConfiguration(XmlDictionaryReaderQuotas readerQuotas)
|
|
{
|
|
if (readerQuotas == null)
|
|
{
|
|
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("readerQuotas");
|
|
}
|
|
if (this.MaxDepth != 0)
|
|
{
|
|
readerQuotas.MaxDepth = this.MaxDepth;
|
|
}
|
|
if (this.MaxStringContentLength != 0)
|
|
{
|
|
readerQuotas.MaxStringContentLength = this.MaxStringContentLength;
|
|
}
|
|
if (this.MaxArrayLength != 0)
|
|
{
|
|
readerQuotas.MaxArrayLength = this.MaxArrayLength;
|
|
}
|
|
if (this.MaxBytesPerRead != 0)
|
|
{
|
|
readerQuotas.MaxBytesPerRead = this.MaxBytesPerRead;
|
|
}
|
|
if (this.MaxNameTableCharCount != 0)
|
|
{
|
|
readerQuotas.MaxNameTableCharCount = this.MaxNameTableCharCount;
|
|
}
|
|
}
|
|
|
|
internal void InitializeFrom(XmlDictionaryReaderQuotas readerQuotas)
|
|
{
|
|
if (readerQuotas == null)
|
|
{
|
|
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("readerQuotas");
|
|
}
|
|
if (readerQuotas.MaxDepth != EncoderDefaults.MaxDepth)
|
|
{
|
|
SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MaxDepth, readerQuotas.MaxDepth);
|
|
}
|
|
if (readerQuotas.MaxStringContentLength != EncoderDefaults.MaxStringContentLength)
|
|
{
|
|
SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MaxStringContentLength, readerQuotas.MaxStringContentLength);
|
|
}
|
|
if (readerQuotas.MaxArrayLength != EncoderDefaults.MaxArrayLength)
|
|
{
|
|
SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MaxArrayLength, readerQuotas.MaxArrayLength);
|
|
}
|
|
if (readerQuotas.MaxBytesPerRead != EncoderDefaults.MaxBytesPerRead)
|
|
{
|
|
SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MaxBytesPerRead, readerQuotas.MaxBytesPerRead);
|
|
}
|
|
if (readerQuotas.MaxNameTableCharCount != EncoderDefaults.MaxNameTableCharCount)
|
|
{
|
|
SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MaxNameTableCharCount, readerQuotas.MaxNameTableCharCount);
|
|
}
|
|
}
|
|
}
|
|
}
|