Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / NetFx35 / System.ServiceModel.Web / System / ServiceModel / Configuration / WebMessageEncodingElement.cs / 1 / WebMessageEncodingElement.cs
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
#pragma warning disable 1634 // Stops compiler from warning about unknown warnings (for Presharp)
namespace System.ServiceModel.Configuration
{
using System.ComponentModel;
using System.Configuration;
using System.ServiceModel.Channels;
using System.Text;
using System.Xml;
public sealed partial class WebMessageEncodingElement : BindingElementExtensionElement
{
const string ConfigurationStringsWebContentTypeMapperType = "webContentTypeMapperType";
public WebMessageEncodingElement()
{
}
[System.Diagnostics.CodeAnalysis.SuppressMessage("Configuration", "Configuration102:ConfigurationPropertyAttributeRule", MessageId = "System.ServiceModel.Configuration.WebMessageEncodingElement.BindingElementType",
Justification = "Not a configurable property; a property that had to be overridden from abstract parent class")]
public override Type BindingElementType
{
get { return typeof(WebMessageEncodingBindingElement); }
}
[ConfigurationProperty(ConfigurationStrings.MaxReadPoolSize, DefaultValue = EncoderDefaults.MaxReadPoolSize)]
[IntegerValidator(MinValue = 1)]
public int MaxReadPoolSize
{
get { return (int) base[ConfigurationStrings.MaxReadPoolSize]; }
set { base[ConfigurationStrings.MaxReadPoolSize] = value; }
}
[ConfigurationProperty(ConfigurationStrings.MaxWritePoolSize, DefaultValue = EncoderDefaults.MaxWritePoolSize)]
[IntegerValidator(MinValue = 1)]
public int MaxWritePoolSize
{
get { return (int) base[ConfigurationStrings.MaxWritePoolSize]; }
set { base[ConfigurationStrings.MaxWritePoolSize] = value; }
}
[ConfigurationProperty(ConfigurationStrings.ReaderQuotas)]
public XmlDictionaryReaderQuotasElement ReaderQuotas
{
get { return (XmlDictionaryReaderQuotasElement) base[ConfigurationStrings.ReaderQuotas]; }
}
[ConfigurationProperty(ConfigurationStringsWebContentTypeMapperType, DefaultValue = "")]
[StringValidator(MinLength = 0)]
public string WebContentTypeMapperType
{
get { return (string) base[ConfigurationStringsWebContentTypeMapperType]; }
set
{
if (String.IsNullOrEmpty(value))
{
value = String.Empty;
}
base[ConfigurationStringsWebContentTypeMapperType] = value;
}
}
[ConfigurationProperty(ConfigurationStrings.WriteEncoding, DefaultValue = TextEncoderDefaults.EncodingString)]
[TypeConverter(typeof(EncodingConverter))]
[WebEncodingValidator]
[System.Diagnostics.CodeAnalysis.SuppressMessage("Configuration", "Configuration104:ConfigurationValidatorAttributeRule", MessageId = "System.ServiceModel.Configuration.WebMessageEncodingElement.WriteEncoding",
Justification = "Bug with internal FxCop assembly flags this property as not having a validator.")]
public Encoding WriteEncoding
{
get { return (Encoding) base[ConfigurationStrings.WriteEncoding]; }
set { base[ConfigurationStrings.WriteEncoding] = value; }
}
public override void ApplyConfiguration(BindingElement bindingElement)
{
base.ApplyConfiguration(bindingElement);
WebMessageEncodingBindingElement binding = (WebMessageEncodingBindingElement) bindingElement;
binding.WriteEncoding = this.WriteEncoding;
binding.MaxReadPoolSize = this.MaxReadPoolSize;
binding.MaxWritePoolSize = this.MaxWritePoolSize;
if (!string.IsNullOrEmpty(this.WebContentTypeMapperType))
{
Type CTMType = Type.GetType(this.WebContentTypeMapperType, true);
if (!typeof(WebContentTypeMapper).IsAssignableFrom(CTMType))
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(
SR2.GetString(SR2.ConfigInvalidWebContentTypeMapper,
CTMType,
ConfigurationStringsWebContentTypeMapperType,
typeof(WebMessageEncodingBindingElement),
typeof(WebContentTypeMapper))));
}
try
{
binding.ContentTypeMapper = (WebContentTypeMapper) Activator.CreateInstance(CTMType);
}
catch (MissingMethodException innerException)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(
SR2.GetString(SR2.ConfigWebContentTypeMapperNoConstructor,
CTMType,
ConfigurationStringsWebContentTypeMapperType,
typeof(WebMessageEncodingBindingElement),
typeof(WebContentTypeMapper)),
innerException));
}
}
#pragma warning suppress 56506 // bindingElement is checked for null in base.ApplyConfiguration()
ApplyConfiguration(this.ReaderQuotas, binding.ReaderQuotas);
}
public override void CopyFrom(ServiceModelExtensionElement from)
{
base.CopyFrom(from);
WebMessageEncodingElement source = (WebMessageEncodingElement) from;
#pragma warning suppress 56506 // base.CopyFrom() checks for 'from' being null
this.WriteEncoding = source.WriteEncoding;
this.MaxReadPoolSize = source.MaxReadPoolSize;
this.MaxWritePoolSize = source.MaxWritePoolSize;
this.WebContentTypeMapperType = source.WebContentTypeMapperType;
this.ReaderQuotas.MaxArrayLength = source.ReaderQuotas.MaxArrayLength;
this.ReaderQuotas.MaxBytesPerRead = source.ReaderQuotas.MaxBytesPerRead;
this.ReaderQuotas.MaxDepth = source.ReaderQuotas.MaxDepth;
this.ReaderQuotas.MaxNameTableCharCount = source.ReaderQuotas.MaxNameTableCharCount;
this.ReaderQuotas.MaxStringContentLength = source.ReaderQuotas.MaxStringContentLength;
}
internal protected override BindingElement CreateBindingElement()
{
WebMessageEncodingBindingElement binding = new WebMessageEncodingBindingElement();
this.ApplyConfiguration(binding);
return binding;
}
internal void ApplyConfiguration(XmlDictionaryReaderQuotasElement currentQuotas, XmlDictionaryReaderQuotas readerQuotas)
{
if (readerQuotas == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("readerQuotas");
}
if (currentQuotas.MaxDepth != 0)
{
readerQuotas.MaxDepth = currentQuotas.MaxDepth;
}
if (currentQuotas.MaxStringContentLength != 0)
{
readerQuotas.MaxStringContentLength = currentQuotas.MaxStringContentLength;
}
if (currentQuotas.MaxArrayLength != 0)
{
readerQuotas.MaxArrayLength = currentQuotas.MaxArrayLength;
}
if (currentQuotas.MaxBytesPerRead != 0)
{
readerQuotas.MaxBytesPerRead = currentQuotas.MaxBytesPerRead;
}
if (currentQuotas.MaxNameTableCharCount != 0)
{
readerQuotas.MaxNameTableCharCount = currentQuotas.MaxNameTableCharCount;
}
}
}
}
// 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
- SuppressMessageAttribute.cs
- BooleanExpr.cs
- ColumnCollection.cs
- Geometry.cs
- ArcSegment.cs
- ChineseLunisolarCalendar.cs
- Parameter.cs
- ShaderRenderModeValidation.cs
- ArraySegment.cs
- XmlEnumAttribute.cs
- TraceLog.cs
- StatusBarItemAutomationPeer.cs
- Inline.cs
- CacheModeValueSerializer.cs
- OSFeature.cs
- StyleXamlParser.cs
- InputMethod.cs
- ServiceManager.cs
- DesignerVerb.cs
- ViewBox.cs
- OptimizerPatterns.cs
- SmtpDigestAuthenticationModule.cs
- ConversionContext.cs
- LinqToSqlWrapper.cs
- WindowInteropHelper.cs
- EntityCommandCompilationException.cs
- ExtensionSurface.cs
- ScaleTransform.cs
- CompositeTypefaceMetrics.cs
- DrawingContextDrawingContextWalker.cs
- CodeAttributeArgumentCollection.cs
- ApplicationInfo.cs
- HyperLinkColumn.cs
- WebPartCancelEventArgs.cs
- _AutoWebProxyScriptWrapper.cs
- CodeTypeDeclarationCollection.cs
- TableLayoutSettingsTypeConverter.cs
- GlyphManager.cs
- ChangePasswordAutoFormat.cs
- TrackingServices.cs
- CommandField.cs
- SystemUdpStatistics.cs
- CodeExporter.cs
- Material.cs
- Metadata.cs
- ManifestResourceInfo.cs
- ReflectionPermission.cs
- StatusBarPanel.cs
- InternalCache.cs
- HttpHandlersInstallComponent.cs
- BasicCommandTreeVisitor.cs
- FrugalList.cs
- AssemblyName.cs
- XamlTypeMapper.cs
- ACE.cs
- GroupBoxRenderer.cs
- FacetDescriptionElement.cs
- SystemFonts.cs
- CatalogZone.cs
- Pipe.cs
- ErasingStroke.cs
- NamespaceCollection.cs
- HiddenField.cs
- TimerElapsedEvenArgs.cs
- Comparer.cs
- InsufficientMemoryException.cs
- OperatingSystemVersionCheck.cs
- SrgsRule.cs
- ServerIdentity.cs
- FileDialog.cs
- ClientSession.cs
- DesignBindingPicker.cs
- SystemBrushes.cs
- CompoundFileReference.cs
- DateTime.cs
- HttpClientCertificate.cs
- EnumMember.cs
- EventData.cs
- DesignerCalendarAdapter.cs
- XmlQueryOutput.cs
- ADMembershipUser.cs
- WebBrowserContainer.cs
- TargetInvocationException.cs
- TemplateBamlRecordReader.cs
- DBConcurrencyException.cs
- ComUdtElement.cs
- CodeConstructor.cs
- HierarchicalDataBoundControl.cs
- Matrix3D.cs
- ScriptResourceMapping.cs
- SerTrace.cs
- BindableTemplateBuilder.cs
- SqlBulkCopyColumnMappingCollection.cs
- DeferredReference.cs
- SqlDataReader.cs
- PerformanceCountersElement.cs
- EntityContainerEmitter.cs
- SecurityUtils.cs
- ManipulationPivot.cs
- ServiceNotStartedException.cs