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
- TemplateControlCodeDomTreeGenerator.cs
- DependsOnAttribute.cs
- JpegBitmapEncoder.cs
- DisableDpiAwarenessAttribute.cs
- WebPartMovingEventArgs.cs
- XmlSchemaComplexContent.cs
- WeakEventTable.cs
- LoadWorkflowByInstanceKeyCommand.cs
- BitmapEffectDrawingContextWalker.cs
- Material.cs
- TableLayoutRowStyleCollection.cs
- HostedElements.cs
- DrawingCollection.cs
- SendKeys.cs
- RecordBuilder.cs
- AQNBuilder.cs
- LinqDataSourceDeleteEventArgs.cs
- MdiWindowListStrip.cs
- CodeTypeParameter.cs
- EventLogTraceListener.cs
- ElementHostPropertyMap.cs
- Stroke2.cs
- NeutralResourcesLanguageAttribute.cs
- Model3DGroup.cs
- XD.cs
- ComboBoxRenderer.cs
- GroupBox.cs
- DataViewSettingCollection.cs
- EdmEntityTypeAttribute.cs
- HyperLink.cs
- WindowsFormsLinkLabel.cs
- ConnectionStringsExpressionBuilder.cs
- NotifyIcon.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- DecimalAnimationBase.cs
- SiteMapHierarchicalDataSourceView.cs
- ClonableStack.cs
- hresults.cs
- TableRowCollection.cs
- SignedXml.cs
- DbLambda.cs
- DecimalAnimation.cs
- StreamingContext.cs
- SortAction.cs
- ConfigurationSectionGroupCollection.cs
- OutputChannel.cs
- Assert.cs
- SharedConnectionListener.cs
- TextLine.cs
- TargetConverter.cs
- SByteConverter.cs
- HtmlElementErrorEventArgs.cs
- AutoCompleteStringCollection.cs
- PersistenceProviderBehavior.cs
- FlowDocumentScrollViewer.cs
- PnrpPermission.cs
- _SslState.cs
- SafeNativeMethodsMilCoreApi.cs
- ParseHttpDate.cs
- Win32Interop.cs
- XmlSchemaAnnotation.cs
- TypeUtil.cs
- ItemMap.cs
- MemoryMappedFile.cs
- XmlReaderSettings.cs
- WindowsFormsHostPropertyMap.cs
- XomlCompilerParameters.cs
- DescriptionAttribute.cs
- SystemIPInterfaceProperties.cs
- DelegatingConfigHost.cs
- PropertyGridEditorPart.cs
- MDIWindowDialog.cs
- UpdatePanelControlTrigger.cs
- InheritanceAttribute.cs
- MethodBuilderInstantiation.cs
- CaseInsensitiveOrdinalStringComparer.cs
- OdbcRowUpdatingEvent.cs
- DragStartedEventArgs.cs
- Interfaces.cs
- PassportPrincipal.cs
- FloaterParagraph.cs
- AuthenticationModuleElementCollection.cs
- GeometryCollection.cs
- ValidationEventArgs.cs
- Trigger.cs
- EasingKeyFrames.cs
- PeerChannelListener.cs
- CompensatableTransactionScopeActivityDesigner.cs
- Matrix.cs
- DBSchemaTable.cs
- SerializationException.cs
- OdbcRowUpdatingEvent.cs
- WebSysDisplayNameAttribute.cs
- Message.cs
- HyperLinkStyle.cs
- RtfFormatStack.cs
- EditBehavior.cs
- VariableQuery.cs
- EntityConnectionStringBuilderItem.cs
- OdbcConnectionFactory.cs