Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Extensions / UI / ScriptResourceMapping.cs / 1305376 / ScriptResourceMapping.cs
namespace System.Web.UI { using System; using System.Collections.Concurrent; using System.Globalization; using System.Reflection; using System.Web.Resources; using System.Web.Util; public class ScriptResourceMapping : IScriptResourceMapping { private ConcurrentDictionary, ScriptResourceDefinition> _definitions = new ConcurrentDictionary , ScriptResourceDefinition>(); public void AddDefinition(string name, ScriptResourceDefinition definition) { AddDefinition(name, null, definition); } public void AddDefinition(string name, Assembly assembly, ScriptResourceDefinition definition) { // dictionary indexer will update the value if it already exists if (String.IsNullOrEmpty(name)) { throw new ArgumentException(AtlasWeb.Common_NullOrEmpty, "name"); } if (definition == null) { throw new ArgumentNullException("definition"); } if (String.IsNullOrEmpty(definition.ResourceName) && String.IsNullOrEmpty(definition.Path)) { throw new ArgumentException(AtlasWeb.ScriptResourceDefinition_NameAndPathCannotBeEmpty, "definition"); } EnsureAbsoluteOrAppRelative(definition.Path); EnsureAbsoluteOrAppRelative(definition.DebugPath); EnsureAbsoluteOrAppRelative(definition.CdnPath); EnsureAbsoluteOrAppRelative(definition.CdnDebugPath); _definitions[new Tuple (name, assembly)] = definition; } public void Clear() { _definitions.Clear(); } private void EnsureAbsoluteOrAppRelative(string path) { if (!String.IsNullOrEmpty(path) && !UrlPath.IsAppRelativePath(path) && // ~/foo.. !UrlPath.IsRooted(path) && // /foo !Uri.IsWellFormedUriString(path, UriKind.Absolute)) { // http://... throw new InvalidOperationException( String.Format(CultureInfo.InvariantCulture, AtlasWeb.ScriptResourceDefinition_InvalidPath, path)); } } public ScriptResourceDefinition GetDefinition(string name, Assembly assembly) { if (String.IsNullOrEmpty(name)) { throw new ArgumentException(AtlasWeb.Common_NullOrEmpty, "name"); } ScriptResourceDefinition definition; _definitions.TryGetValue(new Tuple (name, assembly), out definition); return definition; } public ScriptResourceDefinition GetDefinition(ScriptReference scriptReference) { if (scriptReference == null) { throw new ArgumentNullException("scriptReference"); } string name = scriptReference.Name; Assembly assembly = null; ScriptResourceDefinition definition = null; if (!String.IsNullOrEmpty(name)) { assembly = scriptReference.GetAssembly(); if ((assembly != null) && AssemblyCache.IsAjaxFrameworkAssembly(assembly)) { assembly = null; } definition = ScriptManager.ScriptResourceMapping.GetDefinition(name, assembly); } return definition; } public ScriptResourceDefinition RemoveDefinition(string name, Assembly assembly) { if (String.IsNullOrEmpty(name)) { throw new ArgumentException(AtlasWeb.Common_NullOrEmpty, "name"); } ScriptResourceDefinition definition; _definitions.TryRemove(new Tuple (name, assembly), out definition); return definition; } #region IScriptResourceMapping Members IScriptResourceDefinition IScriptResourceMapping.GetDefinition(string name, Assembly assembly) { return GetDefinition(name, assembly); } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DATA_BLOB.cs
- MatrixConverter.cs
- CallTemplateAction.cs
- DesignerDataConnection.cs
- SafeFileMapViewHandle.cs
- Imaging.cs
- NamedPermissionSet.cs
- MessageAction.cs
- SafeSystemMetrics.cs
- Calendar.cs
- VisualStyleInformation.cs
- DbConnectionPoolGroup.cs
- ProcessProtocolHandler.cs
- DataColumnMappingCollection.cs
- SimpleApplicationHost.cs
- Int64.cs
- ConsoleTraceListener.cs
- WebBrowserNavigatingEventHandler.cs
- WebPartZoneCollection.cs
- SystemNetHelpers.cs
- EvidenceBase.cs
- SHA1Managed.cs
- GifBitmapDecoder.cs
- ColorAnimationBase.cs
- ReverseInheritProperty.cs
- Validator.cs
- ServiceOperationListItem.cs
- SiteMapNodeCollection.cs
- MimeXmlImporter.cs
- IndicShape.cs
- Icon.cs
- BamlLocalizabilityResolver.cs
- DocumentApplicationJournalEntry.cs
- Interlocked.cs
- ValueType.cs
- CommonRemoteMemoryBlock.cs
- DebugView.cs
- Errors.cs
- QilVisitor.cs
- LinqDataSourceContextData.cs
- Rijndael.cs
- GridViewRowCollection.cs
- WmlControlAdapter.cs
- DetailsViewRow.cs
- ChtmlTextWriter.cs
- PageAsyncTask.cs
- SchemaDeclBase.cs
- KnownAssembliesSet.cs
- DataDocumentXPathNavigator.cs
- DomainUpDown.cs
- DoubleCollection.cs
- UriExt.cs
- Processor.cs
- TextClipboardData.cs
- TrackPoint.cs
- KernelTypeValidation.cs
- ProfileSettings.cs
- PartitionedDataSource.cs
- _LazyAsyncResult.cs
- BehaviorEditorPart.cs
- DataTableCollection.cs
- ConfigurationStrings.cs
- PageParserFilter.cs
- ToolStripItemCollection.cs
- RightsManagementPermission.cs
- x509store.cs
- QuaternionKeyFrameCollection.cs
- FixedSOMPageConstructor.cs
- FullTextBreakpoint.cs
- SafeNativeMemoryHandle.cs
- PersonalizationStateInfoCollection.cs
- DataGridColumn.cs
- CollaborationHelperFunctions.cs
- DelegateSerializationHolder.cs
- AccessedThroughPropertyAttribute.cs
- TableLayoutColumnStyleCollection.cs
- CompareValidator.cs
- PerformanceCounterScope.cs
- OleDbParameter.cs
- SessionStateContainer.cs
- DocumentReference.cs
- TriggerActionCollection.cs
- Slider.cs
- HttpModulesSection.cs
- FormClosedEvent.cs
- ActivityDesignerAccessibleObject.cs
- CommonRemoteMemoryBlock.cs
- EncodingNLS.cs
- ConnectAlgorithms.cs
- RemotingException.cs
- C14NUtil.cs
- TypeInitializationException.cs
- BlurBitmapEffect.cs
- SimpleWebHandlerParser.cs
- DoubleLinkList.cs
- GridViewEditEventArgs.cs
- RawTextInputReport.cs
- log.cs
- ComplexType.cs
- ComponentResourceManager.cs