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
- PagesChangedEventArgs.cs
- FileDetails.cs
- IncrementalReadDecoders.cs
- ProxyWebPartManager.cs
- Transactions.cs
- UpDownEvent.cs
- ClientSettingsStore.cs
- BaseResourcesBuildProvider.cs
- MgmtConfigurationRecord.cs
- MdImport.cs
- RadioButtonFlatAdapter.cs
- QilLiteral.cs
- TriggerCollection.cs
- ValueConversionAttribute.cs
- ObjectIDGenerator.cs
- DesignerSerializationVisibilityAttribute.cs
- storepermissionattribute.cs
- CqlIdentifiers.cs
- FormViewUpdatedEventArgs.cs
- Matrix.cs
- WindowsNonControl.cs
- ChangeBlockUndoRecord.cs
- ServiceProviders.cs
- DataIdProcessor.cs
- SiteMapProvider.cs
- UnsafeNativeMethods.cs
- Matrix3DConverter.cs
- RangeValuePattern.cs
- SimpleWebHandlerParser.cs
- SHA512Managed.cs
- XmlDocumentSurrogate.cs
- Visitor.cs
- OdbcStatementHandle.cs
- ReflectionHelper.cs
- IdentityReference.cs
- CreateUserErrorEventArgs.cs
- PropertyStore.cs
- XmlSerializationReader.cs
- FatalException.cs
- EdmToObjectNamespaceMap.cs
- EpmCustomContentSerializer.cs
- AttributeParameterInfo.cs
- VisualStyleRenderer.cs
- SwitchExpression.cs
- TextBoxLine.cs
- AQNBuilder.cs
- FigureParaClient.cs
- NameSpaceExtractor.cs
- EdmEntityTypeAttribute.cs
- ListBoxItemAutomationPeer.cs
- DesignerLoader.cs
- AsyncPostBackTrigger.cs
- AsyncCallback.cs
- TextTrailingCharacterEllipsis.cs
- SectionUpdates.cs
- BuildResultCache.cs
- ObjectDataSourceStatusEventArgs.cs
- IncrementalReadDecoders.cs
- FrameworkTemplate.cs
- FileDetails.cs
- VSWCFServiceContractGenerator.cs
- ToolStripPanelRow.cs
- SimpleRecyclingCache.cs
- TraceLevelStore.cs
- DataGridCellEditEndingEventArgs.cs
- TraversalRequest.cs
- GorillaCodec.cs
- TrimSurroundingWhitespaceAttribute.cs
- PageBuildProvider.cs
- VBCodeProvider.cs
- CaseExpr.cs
- InvokeHandlers.cs
- DesignerToolboxInfo.cs
- Config.cs
- WindowsSolidBrush.cs
- OutputScopeManager.cs
- SqlSupersetValidator.cs
- Directory.cs
- ApplicationFileParser.cs
- OpCodes.cs
- TransportDefaults.cs
- PropertyValueChangedEvent.cs
- BitmapEffectState.cs
- CngAlgorithmGroup.cs
- ServicePointManager.cs
- OdbcConnectionHandle.cs
- ColorAnimation.cs
- TaskDesigner.cs
- ArithmeticException.cs
- ContractMethodParameterInfo.cs
- ColorAnimationUsingKeyFrames.cs
- BorderGapMaskConverter.cs
- ObsoleteAttribute.cs
- OdbcConnectionOpen.cs
- BaseParser.cs
- LocatorManager.cs
- DecimalConstantAttribute.cs
- EFAssociationProvider.cs
- RedistVersionInfo.cs
- InputLanguageManager.cs