|
//------------------------------------------------------------------------------
// 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);
}
}
}
}
|