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
- CssTextWriter.cs
- ApplicationFileCodeDomTreeGenerator.cs
- Freezable.cs
- XsltInput.cs
- Barrier.cs
- RulePatternOps.cs
- XmlBindingWorker.cs
- _SslStream.cs
- UInt16.cs
- StringValidator.cs
- MimeImporter.cs
- PresentationTraceSources.cs
- PrivateFontCollection.cs
- DeclaredTypeElement.cs
- DataColumnCollection.cs
- SchemaName.cs
- TextTabProperties.cs
- CounterSampleCalculator.cs
- ClientSettings.cs
- TheQuery.cs
- InfiniteTimeSpanConverter.cs
- SiteMapDataSource.cs
- SessionPageStatePersister.cs
- MultiplexingDispatchMessageFormatter.cs
- DbConnectionPool.cs
- TextAction.cs
- BaseCAMarshaler.cs
- PageThemeParser.cs
- FormsAuthentication.cs
- MetadataItem.cs
- TimeSpanValidatorAttribute.cs
- Int64AnimationBase.cs
- DictionaryCustomTypeDescriptor.cs
- LiteralDesigner.cs
- Bezier.cs
- HijriCalendar.cs
- WebPartEditVerb.cs
- SafeEventLogWriteHandle.cs
- KnownBoxes.cs
- ServiceNameCollection.cs
- ServiceOperationListItem.cs
- BufferBuilder.cs
- GridViewCellAutomationPeer.cs
- Location.cs
- EncryptedHeaderXml.cs
- Rotation3DAnimation.cs
- OneWayBindingElement.cs
- WebPartMinimizeVerb.cs
- BaseParaClient.cs
- NGCSerializationManagerAsync.cs
- SqlCommandSet.cs
- WmpBitmapDecoder.cs
- TreeNode.cs
- WebResourceAttribute.cs
- GeneralTransform3DGroup.cs
- CloudCollection.cs
- ObjectTag.cs
- TypeExtensions.cs
- EffectiveValueEntry.cs
- ActivationServices.cs
- TextContainerHelper.cs
- FixedHighlight.cs
- DataGridState.cs
- ParameterToken.cs
- WebSysDefaultValueAttribute.cs
- RegionData.cs
- EndpointFilterProvider.cs
- MenuRenderer.cs
- ManagedFilter.cs
- TraceSwitch.cs
- EnvironmentPermission.cs
- TargetControlTypeAttribute.cs
- LazyTextWriterCreator.cs
- RepeatBehaviorConverter.cs
- MessageFormatterConverter.cs
- ISFTagAndGuidCache.cs
- ExpressionPrefixAttribute.cs
- DESCryptoServiceProvider.cs
- ImageSourceValueSerializer.cs
- IDQuery.cs
- DataGridViewComboBoxCell.cs
- hwndwrapper.cs
- SchemaImporterExtension.cs
- UIElementPropertyUndoUnit.cs
- GridViewHeaderRowPresenter.cs
- WebBrowserEvent.cs
- DataObjectEventArgs.cs
- TreeChangeInfo.cs
- AssemblyAttributesGoHere.cs
- SmiContextFactory.cs
- DecoderFallback.cs
- RegexStringValidatorAttribute.cs
- DecoderExceptionFallback.cs
- VerificationException.cs
- PlatformCulture.cs
- StylusButtonCollection.cs
- ContainerActivationHelper.cs
- XmlAggregates.cs
- NativeActivityTransactionContext.cs
- DefaultIfEmptyQueryOperator.cs