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
- ListItemCollection.cs
- ItemList.cs
- CancelEventArgs.cs
- ObjectTypeMapping.cs
- DataRowExtensions.cs
- DataRowChangeEvent.cs
- SiteMap.cs
- DataGridViewElement.cs
- GradientStop.cs
- SHA512Managed.cs
- WebControlToolBoxItem.cs
- KeyConverter.cs
- TypeSystemProvider.cs
- BitmapMetadata.cs
- QilInvokeEarlyBound.cs
- MatrixValueSerializer.cs
- XmlChoiceIdentifierAttribute.cs
- SubstitutionList.cs
- DataGridRowDetailsEventArgs.cs
- QueryCursorEventArgs.cs
- Ppl.cs
- PersonalizableTypeEntry.cs
- CustomAttributeSerializer.cs
- FreezableCollection.cs
- CompensationDesigner.cs
- ResourceSet.cs
- TypedRowHandler.cs
- WindowsAuthenticationModule.cs
- BaseProcessProtocolHandler.cs
- LogExtent.cs
- TreeViewItemAutomationPeer.cs
- ClientScriptManagerWrapper.cs
- ProcessRequestArgs.cs
- Claim.cs
- RequestCachingSection.cs
- DBBindings.cs
- SchemaNotation.cs
- CompiledELinqQueryState.cs
- ConfigurationSectionGroupCollection.cs
- SetStateDesigner.cs
- ToolStripKeyboardHandlingService.cs
- XmlDataLoader.cs
- BaseConfigurationRecord.cs
- PointHitTestParameters.cs
- NameSpaceExtractor.cs
- SecurityHelper.cs
- SoapObjectWriter.cs
- TypeBuilder.cs
- HtmlTitle.cs
- ContextMarshalException.cs
- X509Certificate2.cs
- ChildTable.cs
- FixedSOMTextRun.cs
- MarkerProperties.cs
- DataBoundLiteralControl.cs
- PersonalizableAttribute.cs
- XmlSchemaAttributeGroupRef.cs
- QuaternionAnimationUsingKeyFrames.cs
- ConsoleEntryPoint.cs
- DiscriminatorMap.cs
- ItemCheckedEvent.cs
- configsystem.cs
- ExpressionVisitor.cs
- PageAsyncTask.cs
- DispatcherFrame.cs
- Facet.cs
- DataContractAttribute.cs
- _ListenerAsyncResult.cs
- Connector.xaml.cs
- Rect.cs
- ScrollBarAutomationPeer.cs
- EncryptedPackage.cs
- BitmapEffectvisualstate.cs
- DbgUtil.cs
- LabelDesigner.cs
- HttpCacheVary.cs
- FixedTextBuilder.cs
- HttpClientCertificate.cs
- Button.cs
- CryptoStream.cs
- DataGridCheckBoxColumn.cs
- HelpProvider.cs
- QEncodedStream.cs
- AssemblyFilter.cs
- _LocalDataStore.cs
- SoapBinding.cs
- _IPv6Address.cs
- ProvidersHelper.cs
- InstallerTypeAttribute.cs
- AliasedExpr.cs
- SynchronizationValidator.cs
- WebPartConnectionsConnectVerb.cs
- CollectionMarkupSerializer.cs
- StyleTypedPropertyAttribute.cs
- EntryWrittenEventArgs.cs
- SmtpReplyReader.cs
- MetadataProperty.cs
- DoubleLinkList.cs
- Accessors.cs
- ListItemsPage.cs