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
- LicenseManager.cs
- XPathSelectionIterator.cs
- BulletDecorator.cs
- WebResponse.cs
- SchemaCollectionCompiler.cs
- GridViewSelectEventArgs.cs
- login.cs
- DispatchWrapper.cs
- EventHandlers.cs
- FastEncoder.cs
- OleDbCommandBuilder.cs
- PeerNearMe.cs
- XPathPatternBuilder.cs
- Types.cs
- BulletChrome.cs
- RequestReplyCorrelator.cs
- WebUtil.cs
- KeyValuePairs.cs
- PropertyRecord.cs
- Int32CollectionValueSerializer.cs
- ListViewGroupCollectionEditor.cs
- XmlHierarchicalEnumerable.cs
- LinearKeyFrames.cs
- MessageDecoder.cs
- TypeUtil.cs
- CfgRule.cs
- ObjectAnimationBase.cs
- IDispatchConstantAttribute.cs
- HttpHandlerAction.cs
- CompletionProxy.cs
- WebBrowserBase.cs
- ClientSettings.cs
- AlignmentXValidation.cs
- ModelTreeEnumerator.cs
- DrawingCollection.cs
- OutOfMemoryException.cs
- SQLBinaryStorage.cs
- ObjectKeyFrameCollection.cs
- ComponentResourceKeyConverter.cs
- ToolboxComponentsCreatedEventArgs.cs
- FontFaceLayoutInfo.cs
- FormsAuthenticationEventArgs.cs
- RowParagraph.cs
- ControlPropertyNameConverter.cs
- XsdValidatingReader.cs
- DesignBindingPropertyDescriptor.cs
- XmlAttributeHolder.cs
- XPathException.cs
- Vector3DCollectionConverter.cs
- VectorValueSerializer.cs
- RevocationPoint.cs
- NamespaceTable.cs
- XmlSchemaAttributeGroup.cs
- CoTaskMemHandle.cs
- QilInvoke.cs
- LoadedEvent.cs
- ArglessEventHandlerProxy.cs
- ObjectDataSourceView.cs
- messageonlyhwndwrapper.cs
- EntityDataSourceEntitySetNameItem.cs
- MarkupCompiler.cs
- Evaluator.cs
- TableFieldsEditor.cs
- MsmqInputSessionChannel.cs
- HtmlHead.cs
- MenuItem.cs
- RtfNavigator.cs
- XPathItem.cs
- PageCatalogPart.cs
- SafeNativeMethodsCLR.cs
- PrePrepareMethodAttribute.cs
- SetterBaseCollection.cs
- Stack.cs
- _HelperAsyncResults.cs
- TreeNode.cs
- TreeNodeCollection.cs
- XmlWhitespace.cs
- MatrixTransform.cs
- HuffmanTree.cs
- BitmapEffectInput.cs
- TableItemPatternIdentifiers.cs
- Preprocessor.cs
- ServiceSettingsResponseInfo.cs
- EdmProperty.cs
- X509UI.cs
- DateTimeFormatInfo.cs
- DataGridRelationshipRow.cs
- SetIndexBinder.cs
- IntegrationExceptionEventArgs.cs
- CodeTypeParameter.cs
- SystemInformation.cs
- XsdDateTime.cs
- FilterElement.cs
- SqlCacheDependency.cs
- DrawingBrush.cs
- GraphicsContainer.cs
- ObjectMemberMapping.cs
- ColorAnimationBase.cs
- FileUtil.cs
- TreeViewCancelEvent.cs