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
- FixedPosition.cs
- Emitter.cs
- SQLGuidStorage.cs
- FontStyles.cs
- CopyAction.cs
- Panel.cs
- UnsafeNativeMethods.cs
- XmlDocumentSurrogate.cs
- TextFragmentEngine.cs
- DataBoundControlHelper.cs
- MonthChangedEventArgs.cs
- CollectionBuilder.cs
- PopupEventArgs.cs
- CompensatableTransactionScopeActivity.cs
- FixedSOMTableRow.cs
- FrameworkElement.cs
- DbConnectionPool.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- DynamicResourceExtension.cs
- OleStrCAMarshaler.cs
- Lasso.cs
- RootNamespaceAttribute.cs
- SrgsGrammar.cs
- TextLineResult.cs
- DiscoveryDocumentLinksPattern.cs
- GiveFeedbackEvent.cs
- BasicHttpBinding.cs
- CodeTypeConstructor.cs
- SqlDependencyUtils.cs
- LinkConverter.cs
- WorkflowServiceAttributes.cs
- DBNull.cs
- HwndMouseInputProvider.cs
- ListCollectionView.cs
- ListViewUpdatedEventArgs.cs
- UniqueIdentifierService.cs
- FrameworkTemplate.cs
- ButtonField.cs
- AnonymousIdentificationModule.cs
- ObjectTokenCategory.cs
- KeyPullup.cs
- DesignerDataStoredProcedure.cs
- BitmapEffectCollection.cs
- UInt32Storage.cs
- UntrustedRecipientException.cs
- COM2Enum.cs
- ToolStripGrip.cs
- HtmlImage.cs
- RequestTimeoutManager.cs
- SmiEventStream.cs
- CompilerResults.cs
- ValidateNames.cs
- PauseStoryboard.cs
- DocumentPageView.cs
- Int16AnimationBase.cs
- InternalSendMessage.cs
- Accessible.cs
- StringTraceRecord.cs
- TdsParserHelperClasses.cs
- Int32CAMarshaler.cs
- AssemblyBuilder.cs
- ResXResourceSet.cs
- DiscriminatorMap.cs
- SimpleModelProvider.cs
- InkCanvasSelectionAdorner.cs
- QuaternionKeyFrameCollection.cs
- MetadataItemEmitter.cs
- FontSizeConverter.cs
- DbParameterCollectionHelper.cs
- XsltOutput.cs
- EnvironmentPermission.cs
- TextEmbeddedObject.cs
- GetWorkflowTree.cs
- XmlHierarchicalEnumerable.cs
- RadioButtonAutomationPeer.cs
- AccessText.cs
- StyleSheetRefUrlEditor.cs
- ICollection.cs
- PathSegment.cs
- UseAttributeSetsAction.cs
- Attributes.cs
- IndexOutOfRangeException.cs
- DescendentsWalker.cs
- ApplicationTrust.cs
- Geometry3D.cs
- WindowsPrincipal.cs
- BuildProvidersCompiler.cs
- WindowsFormsSectionHandler.cs
- RootDesignerSerializerAttribute.cs
- WindowsListViewItemStartMenu.cs
- DesignerCategoryAttribute.cs
- EntityDataSourceContainerNameConverter.cs
- DataList.cs
- TextDecorationCollection.cs
- ContextDataSource.cs
- KnownBoxes.cs
- XmlILStorageConverter.cs
- PropertyIdentifier.cs
- ListViewItem.cs
- Attributes.cs