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
- FileLevelControlBuilderAttribute.cs
- VerificationAttribute.cs
- NullableFloatSumAggregationOperator.cs
- HighlightComponent.cs
- ProtocolsConfigurationHandler.cs
- StringTraceRecord.cs
- ScriptingRoleServiceSection.cs
- NetTcpSectionData.cs
- DrawingAttributeSerializer.cs
- FtpWebRequest.cs
- XmlEnumAttribute.cs
- ClientUrlResolverWrapper.cs
- GridItemProviderWrapper.cs
- PropertySegmentSerializer.cs
- isolationinterop.cs
- EmbeddedMailObject.cs
- Environment.cs
- LogPolicy.cs
- PersistenceTypeAttribute.cs
- LogicalCallContext.cs
- InkCanvasAutomationPeer.cs
- TrackingStringDictionary.cs
- Button.cs
- NodeLabelEditEvent.cs
- TextViewSelectionProcessor.cs
- PromptEventArgs.cs
- JoinElimination.cs
- ByteKeyFrameCollection.cs
- TemplateKeyConverter.cs
- GeneralTransform3DGroup.cs
- Quaternion.cs
- XmlWrappingReader.cs
- ConfigurationLocation.cs
- ProcessThreadCollection.cs
- InsufficientMemoryException.cs
- SafePipeHandle.cs
- ScaleTransform3D.cs
- TemplateField.cs
- XmlArrayAttribute.cs
- EventInfo.cs
- RemotingException.cs
- HideDisabledControlAdapter.cs
- SizeKeyFrameCollection.cs
- WorkflowTransactionOptions.cs
- WindowsAltTab.cs
- WebPartZoneBase.cs
- IncrementalHitTester.cs
- _NestedSingleAsyncResult.cs
- recordstatefactory.cs
- TextParaLineResult.cs
- HelpInfo.cs
- ProfilePropertyNameValidator.cs
- XmlSchemaAny.cs
- DesignerUtility.cs
- NullReferenceException.cs
- TableCellCollection.cs
- EdgeProfileValidation.cs
- PackageDigitalSignatureManager.cs
- SoapHeaderAttribute.cs
- HostingEnvironmentSection.cs
- DbDataRecord.cs
- CommonDialog.cs
- ClockGroup.cs
- SrgsElementList.cs
- WindowClosedEventArgs.cs
- DurableTimerExtension.cs
- TextBoxBase.cs
- PartialList.cs
- Stacktrace.cs
- TypeValidationEventArgs.cs
- PathSegment.cs
- BrowserPolicyValidator.cs
- HtmlControl.cs
- HtmlTable.cs
- TileModeValidation.cs
- figurelength.cs
- DPCustomTypeDescriptor.cs
- TextEditorDragDrop.cs
- ActivitySurrogateSelector.cs
- WebPartUserCapability.cs
- RTLAwareMessageBox.cs
- Misc.cs
- ObjectPersistData.cs
- DescendantBaseQuery.cs
- AppDomainProtocolHandler.cs
- StyleSelector.cs
- GetChildSubtree.cs
- SettingsProviderCollection.cs
- RealizationContext.cs
- KnownTypesHelper.cs
- FontCollection.cs
- WindowsFont.cs
- Vector3D.cs
- DynamicRendererThreadManager.cs
- PhysicalFontFamily.cs
- BindingExpressionUncommonField.cs
- Exceptions.cs
- SingleAnimation.cs
- DiscoveryExceptionDictionary.cs
- BlurEffect.cs