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
- TableProviderWrapper.cs
- PropertyConverter.cs
- MimeTypeAttribute.cs
- BitmapEffectGeneralTransform.cs
- GridViewSortEventArgs.cs
- BuildProvidersCompiler.cs
- StaticDataManager.cs
- StructuralCache.cs
- Token.cs
- XmlReader.cs
- TextEditorSpelling.cs
- TransformProviderWrapper.cs
- OpenTypeLayoutCache.cs
- SpeechRecognizer.cs
- ObjectMemberMapping.cs
- ToolStripSplitStackLayout.cs
- HTMLTextWriter.cs
- _ListenerResponseStream.cs
- TabRenderer.cs
- AnimationTimeline.cs
- InputLanguageManager.cs
- EnterpriseServicesHelper.cs
- SubstitutionResponseElement.cs
- CustomValidator.cs
- DelegatedStream.cs
- ClientRuntimeConfig.cs
- XmlCharacterData.cs
- SmtpNegotiateAuthenticationModule.cs
- SystemInfo.cs
- externdll.cs
- SqlCacheDependencyDatabase.cs
- RegistrySecurity.cs
- MiniParameterInfo.cs
- DeflateInput.cs
- BitmapMetadata.cs
- TemplatePartAttribute.cs
- Misc.cs
- AuthenticationServiceManager.cs
- DataControlFieldCollection.cs
- BaseInfoTable.cs
- CFStream.cs
- ControlBindingsCollection.cs
- TypedAsyncResult.cs
- ObjectDataSource.cs
- BatchWriter.cs
- XsltQilFactory.cs
- UnitySerializationHolder.cs
- ApplicationProxyInternal.cs
- HttpRequestCacheValidator.cs
- XmlCodeExporter.cs
- WebServiceResponseDesigner.cs
- TdsParserStateObject.cs
- AQNBuilder.cs
- ContextStaticAttribute.cs
- MimeAnyImporter.cs
- ApplicationDirectory.cs
- PathParser.cs
- Cursor.cs
- CompiledRegexRunner.cs
- MenuScrollingVisibilityConverter.cs
- SoapExtensionTypeElementCollection.cs
- ResolvedKeyFrameEntry.cs
- TextParaClient.cs
- PointCollection.cs
- NameObjectCollectionBase.cs
- SingleSelectRootGridEntry.cs
- RemoteWebConfigurationHostStream.cs
- DataColumnPropertyDescriptor.cs
- SqlPersonalizationProvider.cs
- KeyValueInternalCollection.cs
- AmbientLight.cs
- ImageConverter.cs
- UntypedNullExpression.cs
- MarkupWriter.cs
- CustomAttributeSerializer.cs
- ApplicationInterop.cs
- DataGridTextBox.cs
- ISAPIRuntime.cs
- XamlInterfaces.cs
- TableLayoutStyleCollection.cs
- DataGridTableCollection.cs
- RecommendedAsConfigurableAttribute.cs
- AlternationConverter.cs
- WindowsSpinner.cs
- HyperLinkColumn.cs
- CookielessHelper.cs
- XamlReader.cs
- DataGridHeaderBorder.cs
- ImageButton.cs
- AlgoModule.cs
- ListViewEditEventArgs.cs
- ClientData.cs
- _BaseOverlappedAsyncResult.cs
- DataListDesigner.cs
- PropertyCondition.cs
- HttpCachePolicyElement.cs
- DiscoveryRequestHandler.cs
- NullRuntimeConfig.cs
- ParentControlDesigner.cs
- InternalDispatchObject.cs