Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Configuration / FolderLevelBuildProviderCollection.cs / 1305376 / FolderLevelBuildProviderCollection.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Configuration { using System; using System.Collections.Generic; using System.Configuration; using System.Web.Compilation; // class CompilationSection [ConfigurationCollection(typeof(FolderLevelBuildProvider))] public sealed class FolderLevelBuildProviderCollection : ConfigurationElementCollection { private static ConfigurationPropertyCollection _properties; private Dictionary> _buildProviderMappings; private HashSet _buildProviderTypes; private bool _folderLevelBuildProviderTypesSet; static FolderLevelBuildProviderCollection() { // Property initialization _properties = new ConfigurationPropertyCollection(); } public FolderLevelBuildProviderCollection() : base(StringComparer.OrdinalIgnoreCase) { } protected override ConfigurationPropertyCollection Properties { get { return _properties; } } public new BuildProvider this[string name] { get { return (BuildProvider)BaseGet(name); } } public FolderLevelBuildProvider this[int index] { get { return (FolderLevelBuildProvider)BaseGet(index); } set { if (BaseGet(index) != null) BaseRemoveAt(index); BaseAdd(index, value); } } public void Add(FolderLevelBuildProvider buildProvider) { BaseAdd(buildProvider); } public void Remove(String name) { BaseRemove(name); } public void RemoveAt(int index) { BaseRemoveAt(index); } public void Clear() { BaseClear(); } protected override ConfigurationElement CreateNewElement() { return new FolderLevelBuildProvider(); } protected override Object GetElementKey(ConfigurationElement element) { return ((FolderLevelBuildProvider)element).Name; } // Add a mapping from appliesTo to the buildProviderType private void AddMapping(FolderLevelBuildProviderAppliesTo appliesTo, Type buildProviderType) { if (_buildProviderMappings == null) { _buildProviderMappings = new Dictionary >(); } if (_buildProviderTypes == null) { _buildProviderTypes = new HashSet (); } List buildProviders = null; if (!_buildProviderMappings.TryGetValue(appliesTo, out buildProviders)) { buildProviders = new List (); _buildProviderMappings.Add(appliesTo, buildProviders); } buildProviders.Add(buildProviderType); _buildProviderTypes.Add(buildProviderType); } internal List GetBuildProviderTypes(FolderLevelBuildProviderAppliesTo appliesTo) { EnsureFolderLevelBuildProvidersInitialized(); var buildProviders = new List (); if (_buildProviderMappings != null) { foreach (var pair in _buildProviderMappings) { if ((pair.Key & appliesTo) != 0) { buildProviders.AddRange(pair.Value); } } } return buildProviders; } internal bool IsFolderLevelBuildProvider(Type t) { EnsureFolderLevelBuildProvidersInitialized(); if (_buildProviderTypes != null) { return _buildProviderTypes.Contains(t); } return false; } // Initialize the dictionary mapping appliesTo to buildProvider types private void EnsureFolderLevelBuildProvidersInitialized() { if (!_folderLevelBuildProviderTypesSet) { lock (this) { if (!_folderLevelBuildProviderTypesSet) { foreach (FolderLevelBuildProvider buildProvider in this) { AddMapping(buildProvider.AppliesToInternal, buildProvider.TypeInternal); } _folderLevelBuildProviderTypesSet = true; } } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Configuration { using System; using System.Collections.Generic; using System.Configuration; using System.Web.Compilation; // class CompilationSection [ConfigurationCollection(typeof(FolderLevelBuildProvider))] public sealed class FolderLevelBuildProviderCollection : ConfigurationElementCollection { private static ConfigurationPropertyCollection _properties; private Dictionary> _buildProviderMappings; private HashSet _buildProviderTypes; private bool _folderLevelBuildProviderTypesSet; static FolderLevelBuildProviderCollection() { // Property initialization _properties = new ConfigurationPropertyCollection(); } public FolderLevelBuildProviderCollection() : base(StringComparer.OrdinalIgnoreCase) { } protected override ConfigurationPropertyCollection Properties { get { return _properties; } } public new BuildProvider this[string name] { get { return (BuildProvider)BaseGet(name); } } public FolderLevelBuildProvider this[int index] { get { return (FolderLevelBuildProvider)BaseGet(index); } set { if (BaseGet(index) != null) BaseRemoveAt(index); BaseAdd(index, value); } } public void Add(FolderLevelBuildProvider buildProvider) { BaseAdd(buildProvider); } public void Remove(String name) { BaseRemove(name); } public void RemoveAt(int index) { BaseRemoveAt(index); } public void Clear() { BaseClear(); } protected override ConfigurationElement CreateNewElement() { return new FolderLevelBuildProvider(); } protected override Object GetElementKey(ConfigurationElement element) { return ((FolderLevelBuildProvider)element).Name; } // Add a mapping from appliesTo to the buildProviderType private void AddMapping(FolderLevelBuildProviderAppliesTo appliesTo, Type buildProviderType) { if (_buildProviderMappings == null) { _buildProviderMappings = new Dictionary >(); } if (_buildProviderTypes == null) { _buildProviderTypes = new HashSet (); } List buildProviders = null; if (!_buildProviderMappings.TryGetValue(appliesTo, out buildProviders)) { buildProviders = new List (); _buildProviderMappings.Add(appliesTo, buildProviders); } buildProviders.Add(buildProviderType); _buildProviderTypes.Add(buildProviderType); } internal List GetBuildProviderTypes(FolderLevelBuildProviderAppliesTo appliesTo) { EnsureFolderLevelBuildProvidersInitialized(); var buildProviders = new List (); if (_buildProviderMappings != null) { foreach (var pair in _buildProviderMappings) { if ((pair.Key & appliesTo) != 0) { buildProviders.AddRange(pair.Value); } } } return buildProviders; } internal bool IsFolderLevelBuildProvider(Type t) { EnsureFolderLevelBuildProvidersInitialized(); if (_buildProviderTypes != null) { return _buildProviderTypes.Contains(t); } return false; } // Initialize the dictionary mapping appliesTo to buildProvider types private void EnsureFolderLevelBuildProvidersInitialized() { if (!_folderLevelBuildProviderTypesSet) { lock (this) { if (!_folderLevelBuildProviderTypesSet) { foreach (FolderLevelBuildProvider buildProvider in this) { AddMapping(buildProvider.AppliesToInternal, buildProvider.TypeInternal); } _folderLevelBuildProviderTypesSet = true; } } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Timer.cs
- X500Name.cs
- SoapAttributeOverrides.cs
- TreeNodeConverter.cs
- PageOutputQuality.cs
- HyperLink.cs
- HashHelper.cs
- NumberFunctions.cs
- Debug.cs
- Typography.cs
- CodeCommentStatement.cs
- AdapterUtil.cs
- _Rfc2616CacheValidators.cs
- Icon.cs
- InputReferenceExpression.cs
- PathTooLongException.cs
- ColorConvertedBitmapExtension.cs
- AnchoredBlock.cs
- FrugalList.cs
- XslTransform.cs
- StackSpiller.Bindings.cs
- DictionaryChange.cs
- CookieProtection.cs
- ToolStripContentPanelRenderEventArgs.cs
- MatrixAnimationUsingPath.cs
- StandardOleMarshalObject.cs
- XmlComment.cs
- MatrixTransform.cs
- MessageQuerySet.cs
- DependencySource.cs
- CachedBitmap.cs
- SystemInfo.cs
- TemplateParser.cs
- BaseDataListDesigner.cs
- ResolveNextArgumentWorkItem.cs
- XmlSchemaValidationException.cs
- ListViewCancelEventArgs.cs
- LinqDataSourceSelectEventArgs.cs
- IdnMapping.cs
- ReadContentAsBinaryHelper.cs
- ConfigXmlText.cs
- DynamicPropertyHolder.cs
- MsmqHostedTransportConfiguration.cs
- X509CertificateValidator.cs
- ObjectListShowCommandsEventArgs.cs
- TabControl.cs
- ProtocolsConfiguration.cs
- WebPartMenuStyle.cs
- DesignerDeviceConfig.cs
- CompiledRegexRunner.cs
- Quaternion.cs
- MultilineStringConverter.cs
- ManagedCodeMarkers.cs
- LookupNode.cs
- StateItem.cs
- CurrencyWrapper.cs
- BinaryMethodMessage.cs
- WebBrowserBase.cs
- ParsedAttributeCollection.cs
- ComEventsSink.cs
- ExpandCollapseProviderWrapper.cs
- CredentialCache.cs
- RtfFormatStack.cs
- XmlCodeExporter.cs
- TransportSecurityHelpers.cs
- CodeChecksumPragma.cs
- UrlMappingsSection.cs
- Request.cs
- PreservationFileWriter.cs
- CommandID.cs
- PaintEvent.cs
- KeyEventArgs.cs
- InputProcessorProfiles.cs
- cryptoapiTransform.cs
- Helper.cs
- KeyValuePair.cs
- Axis.cs
- ServiceRouteHandler.cs
- PeerResolverElement.cs
- SrgsRuleRef.cs
- EdgeProfileValidation.cs
- XmlValueConverter.cs
- DataSourceControlBuilder.cs
- UInt64.cs
- TransactionContextValidator.cs
- Context.cs
- LoginDesigner.cs
- initElementDictionary.cs
- UnsafeNativeMethods.cs
- ScriptModule.cs
- _CommandStream.cs
- DataGridViewCheckBoxCell.cs
- DirectoryObjectSecurity.cs
- XmlSchemaInferenceException.cs
- ProjectionRewriter.cs
- RadialGradientBrush.cs
- CodeAttachEventStatement.cs
- DataGridColumnFloatingHeader.cs
- ChannelManagerService.cs
- SqlConnectionString.cs