Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Net / System / Net / Configuration / WebRequestModulesSection.cs / 1 / WebRequestModulesSection.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Net.Configuration
{
using System.Configuration;
using System.Collections;
using System.Globalization;
using System.Net;
using System.Reflection;
using System.Threading;
public sealed class WebRequestModulesSection : ConfigurationSection
{
public WebRequestModulesSection()
{
this.properties.Add(this.webRequestModules);
}
protected override void PostDeserialize()
{
// Perf optimization. If the configuration is coming from machine.config
// It is safe and we don't need to check for permissions.
if (EvaluationContext.IsMachineLevel)
return;
try {
ExceptionHelper.WebPermissionUnrestricted.Demand();
} catch (Exception exception) {
throw new ConfigurationErrorsException(
SR.GetString(SR.net_config_section_permission,
ConfigurationStrings.WebRequestModulesSectionName),
exception);
}
}
protected override void InitializeDefault()
{
this.WebRequestModules.Add(
new WebRequestModuleElement(ConfigurationStrings.Https, typeof(HttpRequestCreator)));
this.WebRequestModules.Add(
new WebRequestModuleElement(ConfigurationStrings.Http, typeof(HttpRequestCreator)));
this.WebRequestModules.Add(
new WebRequestModuleElement(ConfigurationStrings.File, typeof(FileWebRequestCreator)));
this.WebRequestModules.Add(
new WebRequestModuleElement(ConfigurationStrings.Ftp, typeof(FtpWebRequestCreator)));
}
protected override ConfigurationPropertyCollection Properties
{
get { return this.properties; }
}
[ConfigurationProperty("", IsDefaultCollection=true )]
public WebRequestModuleElementCollection WebRequestModules
{
get { return (WebRequestModuleElementCollection)this[this.webRequestModules]; }
}
ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
readonly ConfigurationProperty webRequestModules =
new ConfigurationProperty(null, typeof(WebRequestModuleElementCollection), null,
ConfigurationPropertyOptions.IsDefaultCollection);
}
internal sealed class WebRequestModulesSectionInternal
{
internal WebRequestModulesSectionInternal(WebRequestModulesSection section)
{
if (section.WebRequestModules.Count > 0)
{
this.webRequestModules = new ArrayList(section.WebRequestModules.Count);
foreach(WebRequestModuleElement webRequestModuleElement in section.WebRequestModules)
{
try
{
this.webRequestModules.Add(new WebRequestPrefixElement(webRequestModuleElement.Prefix, webRequestModuleElement.Type));
}
catch (Exception exception)
{
if (NclUtilities.IsFatal(exception)) throw;
throw new ConfigurationErrorsException(SR.GetString(SR.net_config_webrequestmodules), exception);
}
catch {
//
// throw exception for config debugging
//
throw new ConfigurationErrorsException(ConfigurationStrings.WebRequestModulesSectionPath, new Exception(SR.GetString(SR.net_nonClsCompliantException)));
}
}
}
}
internal static object ClassSyncObject
{
get
{
if (classSyncObject == null)
{
object o = new object();
Interlocked.CompareExchange(ref classSyncObject, o, null);
}
return classSyncObject;
}
}
static internal WebRequestModulesSectionInternal GetSection()
{
lock (WebRequestModulesSectionInternal.ClassSyncObject)
{
WebRequestModulesSection section = PrivilegedConfigurationManager.GetSection(ConfigurationStrings.WebRequestModulesSectionPath) as WebRequestModulesSection;
if (section == null)
return null;
return new WebRequestModulesSectionInternal(section);
}
}
internal ArrayList WebRequestModules
{
get
{
ArrayList retval = this.webRequestModules;
if (retval == null)
{
retval = new ArrayList(0);
}
return retval;
}
}
static object classSyncObject = null;
ArrayList webRequestModules = null;
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataGridColumnHeaderCollection.cs
- MemberAccessException.cs
- FragmentNavigationEventArgs.cs
- WindowsPrincipal.cs
- SizeValueSerializer.cs
- COM2TypeInfoProcessor.cs
- PathFigureCollection.cs
- NonVisualControlAttribute.cs
- ListViewUpdatedEventArgs.cs
- SchemaCollectionCompiler.cs
- DateTimeParse.cs
- ConnectionPoint.cs
- TemplateControlBuildProvider.cs
- OleDbPermission.cs
- AssemblyFilter.cs
- XamlNamespaceHelper.cs
- QilValidationVisitor.cs
- PointUtil.cs
- BindingExpressionUncommonField.cs
- NonSerializedAttribute.cs
- SettingsContext.cs
- ConfigXmlText.cs
- mediaeventargs.cs
- ColorKeyFrameCollection.cs
- DecimalAnimationBase.cs
- InvalidProgramException.cs
- CorrelationScope.cs
- AttributeCollection.cs
- SR.cs
- Model3DCollection.cs
- ResumeStoryboard.cs
- ContentFileHelper.cs
- IisTraceWebEventProvider.cs
- ConsumerConnectionPointCollection.cs
- PolyQuadraticBezierSegment.cs
- InArgumentConverter.cs
- PropertyInfoSet.cs
- ImageListImage.cs
- CollectionContainer.cs
- CodeSnippetExpression.cs
- XmlRootAttribute.cs
- SamlSecurityTokenAuthenticator.cs
- Binding.cs
- TargetPerspective.cs
- Cursor.cs
- MenuItemBinding.cs
- LoginUtil.cs
- __TransparentProxy.cs
- DataBoundLiteralControl.cs
- OutOfMemoryException.cs
- PerformanceCounterPermissionEntry.cs
- externdll.cs
- DrawingVisual.cs
- InstanceDataCollectionCollection.cs
- TraceRecords.cs
- QuaternionRotation3D.cs
- MediaElementAutomationPeer.cs
- CustomError.cs
- LookupNode.cs
- SapiRecoContext.cs
- Transform3DGroup.cs
- DynamicDataManager.cs
- XmlWrappingReader.cs
- XMLDiffLoader.cs
- SrgsOneOf.cs
- CoreSwitches.cs
- PowerModeChangedEventArgs.cs
- streamingZipPartStream.cs
- ArgumentOutOfRangeException.cs
- WebPartConnection.cs
- SchemaNames.cs
- SizeConverter.cs
- ParenthesizePropertyNameAttribute.cs
- TemplateNodeContextMenu.cs
- PlatformCulture.cs
- _BasicClient.cs
- HtmlAnchor.cs
- ButtonRenderer.cs
- Emitter.cs
- ToolboxDataAttribute.cs
- FileReservationCollection.cs
- Visitor.cs
- IssuanceTokenProviderState.cs
- ParagraphVisual.cs
- externdll.cs
- CrossSiteScriptingValidation.cs
- x509store.cs
- Rules.cs
- PrimarySelectionAdorner.cs
- CodeDOMUtility.cs
- AppDomainAttributes.cs
- XXXInfos.cs
- UnsafeNativeMethodsCLR.cs
- BitmapEffectInput.cs
- TextHidden.cs
- RegexGroup.cs
- StylusPointProperty.cs
- GuidelineSet.cs
- SafeRegistryHandle.cs
- ParameterCollection.cs