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
- ScriptResourceAttribute.cs
- SerializationAttributes.cs
- ComponentDispatcher.cs
- DocumentDesigner.cs
- oledbmetadatacolumnnames.cs
- XmlUrlResolver.cs
- LinearGradientBrush.cs
- ReferenceEqualityComparer.cs
- Dictionary.cs
- RichTextBoxConstants.cs
- SplitterPanel.cs
- PolyBezierSegment.cs
- CultureInfoConverter.cs
- VectorKeyFrameCollection.cs
- Transform3DCollection.cs
- DateTimeOffset.cs
- Behavior.cs
- PagesChangedEventArgs.cs
- InstanceDataCollectionCollection.cs
- Drawing.cs
- AttachedAnnotationChangedEventArgs.cs
- PseudoWebRequest.cs
- ICspAsymmetricAlgorithm.cs
- DocumentSequence.cs
- DefaultAsyncDataDispatcher.cs
- DocumentViewerConstants.cs
- TextDecorationLocationValidation.cs
- unsafenativemethodsother.cs
- SecurityManager.cs
- ContentElementAutomationPeer.cs
- SafeMILHandle.cs
- Converter.cs
- RectangleHotSpot.cs
- CodePageEncoding.cs
- ScrollEvent.cs
- TextShapeableCharacters.cs
- DataListDesigner.cs
- DataIdProcessor.cs
- FormsAuthenticationUser.cs
- SchemaCreator.cs
- DecoderNLS.cs
- ToolStripButton.cs
- CharEntityEncoderFallback.cs
- safex509handles.cs
- PropertyItem.cs
- TransactionException.cs
- ClockGroup.cs
- DataKeyCollection.cs
- WaitHandleCannotBeOpenedException.cs
- LocalizationComments.cs
- CodeSpit.cs
- documentsequencetextcontainer.cs
- ActivityDesigner.cs
- StatusBar.cs
- ImpersonationContext.cs
- OrderedDictionary.cs
- BorderSidesEditor.cs
- VerificationAttribute.cs
- FastPropertyAccessor.cs
- LOSFormatter.cs
- ColumnHeaderConverter.cs
- PageEventArgs.cs
- X509SecurityToken.cs
- DetailsViewRow.cs
- ZipIOExtraField.cs
- SignerInfo.cs
- Invariant.cs
- DbModificationClause.cs
- InvokePatternIdentifiers.cs
- EntityDataSource.cs
- LinkArea.cs
- Debug.cs
- WebPartMovingEventArgs.cs
- DomNameTable.cs
- TextServicesLoader.cs
- DoubleAnimationBase.cs
- BamlTreeNode.cs
- StickyNoteAnnotations.cs
- _BasicClient.cs
- _BaseOverlappedAsyncResult.cs
- DataGridCellsPresenter.cs
- TypeForwardedToAttribute.cs
- ClientTargetSection.cs
- ToolbarAUtomationPeer.cs
- RequestCachingSection.cs
- EmissiveMaterial.cs
- UidPropertyAttribute.cs
- HandleRef.cs
- RecognitionEventArgs.cs
- NonSerializedAttribute.cs
- DesignTimeTemplateParser.cs
- ReturnType.cs
- XNameTypeConverter.cs
- cookiecollection.cs
- LinqDataSourceUpdateEventArgs.cs
- FontFamilyIdentifier.cs
- SqlDataAdapter.cs
- FontFamilyIdentifier.cs
- VisemeEventArgs.cs
- ScriptBehaviorDescriptor.cs