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
- InputMethod.cs
- DependencyPropertyDescriptor.cs
- AccessDataSourceView.cs
- GeometryCollection.cs
- TypefaceMetricsCache.cs
- TextParaClient.cs
- SeparatorAutomationPeer.cs
- ListMarkerSourceInfo.cs
- HyperLinkColumn.cs
- XPathEmptyIterator.cs
- InternalBufferOverflowException.cs
- XmlSchemas.cs
- AttachmentService.cs
- WmlValidationSummaryAdapter.cs
- SemanticResultKey.cs
- MsmqTransportBindingElement.cs
- PasswordDeriveBytes.cs
- RawMouseInputReport.cs
- ControlSerializer.cs
- DoubleCollection.cs
- Attributes.cs
- InternalConfigHost.cs
- EventProviderWriter.cs
- DictionaryManager.cs
- TransformedBitmap.cs
- XmlSchemaCompilationSettings.cs
- ErrorTolerantObjectWriter.cs
- OleDbPermission.cs
- Expressions.cs
- MeshGeometry3D.cs
- CompatibleIComparer.cs
- KnownTypesProvider.cs
- SelectionUIHandler.cs
- Pair.cs
- NoneExcludedImageIndexConverter.cs
- DataControlImageButton.cs
- IsolatedStorageFile.cs
- StateRuntime.cs
- SafeRightsManagementPubHandle.cs
- RsaSecurityKey.cs
- SessionPageStateSection.cs
- SequentialOutput.cs
- ControlIdConverter.cs
- SecurityContextSecurityTokenParameters.cs
- ForEachAction.cs
- TraceRecord.cs
- Matrix3D.cs
- WebPartConnectionsDisconnectVerb.cs
- BufferCache.cs
- TextDataBindingHandler.cs
- QueryCursorEventArgs.cs
- GatewayDefinition.cs
- EventHandlerList.cs
- UIntPtr.cs
- GreenMethods.cs
- Formatter.cs
- TraceSection.cs
- _Semaphore.cs
- SharedPersonalizationStateInfo.cs
- FileRecordSequenceHelper.cs
- JoinTreeSlot.cs
- RuntimeDelegateArgument.cs
- DetailsViewCommandEventArgs.cs
- AsyncDataRequest.cs
- Privilege.cs
- PageParserFilter.cs
- Binding.cs
- Mouse.cs
- PieceNameHelper.cs
- XmlSchemaImporter.cs
- PerfCounterSection.cs
- DataGridViewDataConnection.cs
- UrlAuthFailedErrorFormatter.cs
- FixedSOMSemanticBox.cs
- Switch.cs
- SqlParameterCollection.cs
- HtmlTableRow.cs
- PolyLineSegment.cs
- HijriCalendar.cs
- PixelShader.cs
- WeakReference.cs
- datacache.cs
- ComboBoxAutomationPeer.cs
- ObjectAssociationEndMapping.cs
- DataGridColumnEventArgs.cs
- SQLByte.cs
- TypeBuilder.cs
- FaultContractInfo.cs
- XMLDiffLoader.cs
- XPathScanner.cs
- BaseWebProxyFinder.cs
- WebServiceTypeData.cs
- PropertyMapper.cs
- Size3DConverter.cs
- HttpListenerRequest.cs
- FormatterConverter.cs
- SizeConverter.cs
- GrabHandleGlyph.cs
- Matrix3DConverter.cs
- ModulesEntry.cs