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
- FrameworkRichTextComposition.cs
- ArithmeticException.cs
- ToolboxItemCollection.cs
- FormViewPagerRow.cs
- FlowDocumentPage.cs
- SettingsBase.cs
- InheritanceContextHelper.cs
- SessionIDManager.cs
- ListBoxAutomationPeer.cs
- DataServiceContext.cs
- OleDbInfoMessageEvent.cs
- ClientSettingsProvider.cs
- SequenceDesigner.cs
- ZeroOpNode.cs
- ConfigXmlSignificantWhitespace.cs
- RootNamespaceAttribute.cs
- ErrorsHelper.cs
- SQLRoleProvider.cs
- BufferedGraphics.cs
- FirstMatchCodeGroup.cs
- TitleStyle.cs
- UdpConstants.cs
- TimeSpan.cs
- BuildProviderCollection.cs
- UseLicense.cs
- HostExecutionContextManager.cs
- GcSettings.cs
- AppDomainUnloadedException.cs
- OutputCacheSettingsSection.cs
- TypedReference.cs
- DescriptionAttribute.cs
- RegexInterpreter.cs
- TraceContextRecord.cs
- HighlightComponent.cs
- SqlClientWrapperSmiStreamChars.cs
- OleDbError.cs
- BehaviorEditorPart.cs
- If.cs
- TdsRecordBufferSetter.cs
- SoapHeaderException.cs
- HtmlInputHidden.cs
- ComponentCommands.cs
- OpenFileDialog.cs
- SemaphoreFullException.cs
- QuaternionRotation3D.cs
- RemotingService.cs
- FormViewPageEventArgs.cs
- DataReaderContainer.cs
- ExpanderAutomationPeer.cs
- GenericXmlSecurityTokenAuthenticator.cs
- TransportBindingElementImporter.cs
- EmptyElement.cs
- IdSpace.cs
- DiagnosticTrace.cs
- ToolboxBitmapAttribute.cs
- ObjectSet.cs
- PerfCounters.cs
- ProviderUtil.cs
- securestring.cs
- ConvertEvent.cs
- XPathDescendantIterator.cs
- SequentialWorkflowHeaderFooter.cs
- ListDesigner.cs
- FixedNode.cs
- GridToolTip.cs
- Cursor.cs
- DifferencingCollection.cs
- FormViewModeEventArgs.cs
- LinkTarget.cs
- DetailsViewInsertedEventArgs.cs
- CodeAttributeArgumentCollection.cs
- DocumentNUp.cs
- QuaternionAnimationBase.cs
- ListSortDescription.cs
- QuaternionRotation3D.cs
- TextComposition.cs
- XXXInfos.cs
- MultiView.cs
- Preprocessor.cs
- ZipIOLocalFileDataDescriptor.cs
- DelegatingTypeDescriptionProvider.cs
- DynamicRendererThreadManager.cs
- Brush.cs
- DesignTimeTemplateParser.cs
- SystemResources.cs
- TextEditorThreadLocalStore.cs
- RenderDataDrawingContext.cs
- ErrorEventArgs.cs
- Point3DValueSerializer.cs
- XmlWellformedWriter.cs
- EntityWrapper.cs
- LineVisual.cs
- MergeFailedEvent.cs
- SiteMapProvider.cs
- StackSpiller.Generated.cs
- DataServiceProcessingPipeline.cs
- TextBoxView.cs
- XmlNodeChangedEventManager.cs
- Cloud.cs
- ExpressionWriter.cs