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
- BrushValueSerializer.cs
- TraceHandlerErrorFormatter.cs
- GrammarBuilderWildcard.cs
- MdbDataFileEditor.cs
- WebPartCloseVerb.cs
- XmlLinkedNode.cs
- CompositeScriptReferenceEventArgs.cs
- Rect3D.cs
- PropertiesTab.cs
- BreakRecordTable.cs
- HttpPostedFile.cs
- coordinatorscratchpad.cs
- DbXmlEnabledProviderManifest.cs
- EventLogInternal.cs
- TimeoutException.cs
- RijndaelManaged.cs
- TraceLog.cs
- DataPagerField.cs
- SQLInt32.cs
- TextEditorParagraphs.cs
- MemberCollection.cs
- ObjectSet.cs
- HostedTransportConfigurationBase.cs
- AnonymousIdentificationModule.cs
- LexicalChunk.cs
- SynchronousSendBindingElement.cs
- SafeNativeMethods.cs
- DataServiceHostWrapper.cs
- XmlSerializerNamespaces.cs
- SizeKeyFrameCollection.cs
- TagMapInfo.cs
- WorkflowViewStateService.cs
- QualifiedCellIdBoolean.cs
- SQLInt64Storage.cs
- CodeDefaultValueExpression.cs
- GradientBrush.cs
- DataGridViewLinkCell.cs
- SystemInfo.cs
- ContentPathSegment.cs
- HttpCacheParams.cs
- OptimizedTemplateContentHelper.cs
- PropertyConverter.cs
- DataGridViewButtonColumn.cs
- SafeThreadHandle.cs
- Rectangle.cs
- QilReplaceVisitor.cs
- SystemUnicastIPAddressInformation.cs
- XmlSerializer.cs
- Pool.cs
- WebCategoryAttribute.cs
- BitmapFrameDecode.cs
- AssociationSetEnd.cs
- AssemblyCache.cs
- OptimizedTemplateContentHelper.cs
- PackWebRequestFactory.cs
- DateTimeValueSerializerContext.cs
- SqlDataSourceTableQuery.cs
- ViewBox.cs
- CodeDelegateInvokeExpression.cs
- BinaryConverter.cs
- MetabaseServerConfig.cs
- XsltSettings.cs
- SiteMapHierarchicalDataSourceView.cs
- DictationGrammar.cs
- TextDecorationLocationValidation.cs
- SqlErrorCollection.cs
- TemplateField.cs
- __Error.cs
- DropSource.cs
- DescendentsWalkerBase.cs
- ParameterRetriever.cs
- Boolean.cs
- WebEvents.cs
- SendingRequestEventArgs.cs
- BinaryParser.cs
- TypeBuilderInstantiation.cs
- NativeMethodsCLR.cs
- VarRemapper.cs
- XmlSchemaAny.cs
- PageRouteHandler.cs
- SizeConverter.cs
- RegexTree.cs
- RIPEMD160.cs
- RectangleConverter.cs
- RegexRunner.cs
- TdsValueSetter.cs
- GAC.cs
- EventListenerClientSide.cs
- SafeHandles.cs
- StaticExtension.cs
- NativeCppClassAttribute.cs
- MultiplexingDispatchMessageFormatter.cs
- ParserHooks.cs
- ImageSource.cs
- LOSFormatter.cs
- PkcsMisc.cs
- XamlPathDataSerializer.cs
- WindowsSecurityTokenAuthenticator.cs
- FieldNameLookup.cs
- NativeMethods.cs