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
- UnicodeEncoding.cs
- StringFunctions.cs
- WmlTextViewAdapter.cs
- Matrix3D.cs
- PermissionSet.cs
- Evidence.cs
- Encoder.cs
- X509Certificate2Collection.cs
- BooleanAnimationUsingKeyFrames.cs
- DataGridTextBox.cs
- StateChangeEvent.cs
- NumericExpr.cs
- SqlBuffer.cs
- MemoryMappedViewStream.cs
- TypeLibConverter.cs
- InheritedPropertyChangedEventArgs.cs
- ClickablePoint.cs
- Win32SafeHandles.cs
- DesignTimeTemplateParser.cs
- OleDbPropertySetGuid.cs
- MachineKeySection.cs
- UrlPath.cs
- IxmlLineInfo.cs
- NumericPagerField.cs
- ClientFormsIdentity.cs
- SelectionItemPattern.cs
- TemplateLookupAction.cs
- ApplicationFileParser.cs
- CodeStatementCollection.cs
- StringArrayConverter.cs
- TdsEnums.cs
- Bezier.cs
- DataPointer.cs
- SqlDataSourceQueryEditor.cs
- Transform.cs
- CommentEmitter.cs
- XhtmlBasicCommandAdapter.cs
- IdleTimeoutMonitor.cs
- GroupBox.cs
- OdbcConnection.cs
- OracleString.cs
- HierarchicalDataTemplate.cs
- FontWeightConverter.cs
- Metafile.cs
- SoundPlayerAction.cs
- DecoderFallbackWithFailureFlag.cs
- CellLabel.cs
- FigureParagraph.cs
- TdsParser.cs
- EventMap.cs
- HwndAppCommandInputProvider.cs
- HostingEnvironmentException.cs
- Task.cs
- TextTreeTextElementNode.cs
- BindingNavigator.cs
- CommonDialog.cs
- ManagementEventArgs.cs
- OracleDateTime.cs
- MenuCommand.cs
- AdministrationHelpers.cs
- MobileRedirect.cs
- ContractListAdapter.cs
- ObjectSecurity.cs
- ObjectManager.cs
- MetadataProperty.cs
- EntityTypeEmitter.cs
- RequestCachePolicyConverter.cs
- UnauthorizedWebPart.cs
- FilterQuery.cs
- StorageAssociationTypeMapping.cs
- DateTimeFormat.cs
- DbUpdateCommandTree.cs
- PaginationProgressEventArgs.cs
- BaseProcessProtocolHandler.cs
- DataGridBoolColumn.cs
- HuffmanTree.cs
- ConnectionManager.cs
- QuaternionAnimation.cs
- PrintPreviewControl.cs
- SafeArrayTypeMismatchException.cs
- LoginCancelEventArgs.cs
- ContainerControl.cs
- DirectionalLight.cs
- Object.cs
- ExpressionList.cs
- NavigationPropertySingletonExpression.cs
- ScrollData.cs
- TypeSystemHelpers.cs
- DiffuseMaterial.cs
- UserControlCodeDomTreeGenerator.cs
- WindowsMenu.cs
- HeaderUtility.cs
- EnterpriseServicesHelper.cs
- RenderingEventArgs.cs
- CompiledIdentityConstraint.cs
- SqlDataSource.cs
- PropertyEmitter.cs
- AudioFileOut.cs
- PassportAuthenticationModule.cs
- OdbcConnection.cs