Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MachineKeySection.cs
- DataStreams.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- XmlSerializerFactory.cs
- OleDbStruct.cs
- InheritanceRules.cs
- ZipIOExtraFieldPaddingElement.cs
- TabControl.cs
- Span.cs
- _LocalDataStoreMgr.cs
- TransformCryptoHandle.cs
- FixedDocument.cs
- SecurityElement.cs
- PlatformCulture.cs
- BitSet.cs
- TCPListener.cs
- DataSourceCache.cs
- CheckBoxAutomationPeer.cs
- Animatable.cs
- TreeNodeCollection.cs
- TextParagraph.cs
- Dump.cs
- NativeMethods.cs
- Array.cs
- BindingCollection.cs
- EdmComplexPropertyAttribute.cs
- MdiWindowListStrip.cs
- VirtualDirectoryMapping.cs
- ScaleTransform.cs
- HttpStaticObjectsCollectionBase.cs
- SetterBase.cs
- WebPartConnectVerb.cs
- WmlTextBoxAdapter.cs
- DataGridItemCollection.cs
- ToolStripPanelRow.cs
- EntityUtil.cs
- DataGridViewAccessibleObject.cs
- SqlDataSourceCommandEventArgs.cs
- AspCompat.cs
- GroupDescription.cs
- ToolStripItem.cs
- listitem.cs
- BindingElement.cs
- precedingquery.cs
- PointUtil.cs
- Propagator.cs
- CapiSafeHandles.cs
- MDIControlStrip.cs
- DesignerObject.cs
- BuildDependencySet.cs
- Axis.cs
- OptimisticConcurrencyException.cs
- DictionaryMarkupSerializer.cs
- JournalEntry.cs
- CodeAttributeArgumentCollection.cs
- NestPullup.cs
- DataGridColumn.cs
- SafeFileMappingHandle.cs
- ConfigurationManager.cs
- ContextBase.cs
- StructuralCache.cs
- Figure.cs
- InvalidPipelineStoreException.cs
- WebPartMinimizeVerb.cs
- DllHostedComPlusServiceHost.cs
- CommonXSendMessage.cs
- AggregationMinMaxHelpers.cs
- TextDecoration.cs
- DbException.cs
- FullTextState.cs
- NavigationWindowAutomationPeer.cs
- FontInfo.cs
- XmlWrappingWriter.cs
- NominalTypeEliminator.cs
- WorkflowRuntimeElement.cs
- Util.cs
- MimeTypeMapper.cs
- AnnouncementService.cs
- HandledEventArgs.cs
- DataGridViewColumnStateChangedEventArgs.cs
- CookieParameter.cs
- FamilyCollection.cs
- contentDescriptor.cs
- ObjectTag.cs
- SinglePageViewer.cs
- MsmqHostedTransportManager.cs
- ToolStripDropDownDesigner.cs
- _BaseOverlappedAsyncResult.cs
- controlskin.cs
- WebControl.cs
- GeometryHitTestParameters.cs
- ZoneLinkButton.cs
- DigitalSignatureProvider.cs
- LambdaExpression.cs
- ListBase.cs
- ActivityDesignerResources.cs
- ObjectDataProvider.cs
- AnimationClockResource.cs
- NetworkStream.cs
- Visual3DCollection.cs