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
- TemplateControlParser.cs
- CodeAttributeArgument.cs
- EntityStoreSchemaFilterEntry.cs
- PeerApplication.cs
- ResourcePermissionBase.cs
- FixedPosition.cs
- RuleRef.cs
- MediaElement.cs
- SQLDecimalStorage.cs
- DataControlFieldHeaderCell.cs
- DataBindingList.cs
- NullableConverter.cs
- StringExpressionSet.cs
- EqualityComparer.cs
- RotateTransform.cs
- _RequestLifetimeSetter.cs
- EdgeProfileValidation.cs
- TextViewSelectionProcessor.cs
- TimelineCollection.cs
- HttpHandlersSection.cs
- AttributeCollection.cs
- SoapIncludeAttribute.cs
- CommentEmitter.cs
- UriWriter.cs
- QuaternionValueSerializer.cs
- ExtendedProtectionPolicyElement.cs
- Imaging.cs
- Enum.cs
- ToolStripItemImageRenderEventArgs.cs
- dsa.cs
- DesignerSerializationOptionsAttribute.cs
- UserControlAutomationPeer.cs
- DotAtomReader.cs
- XsltCompileContext.cs
- Geometry.cs
- InternalBase.cs
- XhtmlCssHandler.cs
- RsaKeyIdentifierClause.cs
- MemberPath.cs
- MultipartIdentifier.cs
- TextRenderer.cs
- GridItem.cs
- EdmValidator.cs
- MetadataItem.cs
- ValueTypeFieldReference.cs
- SplitterCancelEvent.cs
- MetadataItemCollectionFactory.cs
- AdditionalEntityFunctions.cs
- TrustLevel.cs
- DesignerSerializerAttribute.cs
- LinearGradientBrush.cs
- IisNotInstalledException.cs
- RenderContext.cs
- EntityUtil.cs
- DynamicValidatorEventArgs.cs
- Queue.cs
- UnsafePeerToPeerMethods.cs
- DesignTimeType.cs
- StrongNameIdentityPermission.cs
- RegisteredArrayDeclaration.cs
- SafeRightsManagementHandle.cs
- BinaryFormatter.cs
- TogglePatternIdentifiers.cs
- SecurityHeaderLayout.cs
- Border.cs
- CodeEntryPointMethod.cs
- TimelineClockCollection.cs
- TextRangeEdit.cs
- ResourceCategoryAttribute.cs
- ServerType.cs
- DataGridHeadersVisibilityToVisibilityConverter.cs
- SqlPersonalizationProvider.cs
- ImageMetadata.cs
- SchemaRegistration.cs
- SystemWebExtensionsSectionGroup.cs
- NodeInfo.cs
- ReflectionUtil.cs
- SamlAction.cs
- RecommendedAsConfigurableAttribute.cs
- FrameworkTemplate.cs
- Triplet.cs
- Array.cs
- SafeLibraryHandle.cs
- DataServiceBehavior.cs
- DurableTimerExtension.cs
- FormsAuthenticationModule.cs
- GenericParameterDataContract.cs
- SelectionUIService.cs
- Camera.cs
- DesignBinding.cs
- MinMaxParagraphWidth.cs
- Function.cs
- EdmToObjectNamespaceMap.cs
- FrameworkRichTextComposition.cs
- MetadataArtifactLoaderComposite.cs
- SmiSettersStream.cs
- Style.cs
- StaticExtension.cs
- MutexSecurity.cs
- DatatypeImplementation.cs