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
- SessionPageStateSection.cs
- CollectionContainer.cs
- WindowsListViewItemStartMenu.cs
- PartialArray.cs
- ImageSource.cs
- ConsoleTraceListener.cs
- HtmlMobileTextWriter.cs
- TCEAdapterGenerator.cs
- dataprotectionpermissionattribute.cs
- NetworkInterface.cs
- XmlReader.cs
- EventHandlersStore.cs
- RelationshipFixer.cs
- CustomLineCap.cs
- PrivateFontCollection.cs
- OdbcErrorCollection.cs
- BinaryObjectInfo.cs
- WindowsFont.cs
- Internal.cs
- LockedAssemblyCache.cs
- MailAddressCollection.cs
- DragDropHelper.cs
- StringFormat.cs
- DecoderReplacementFallback.cs
- UpdatePanelControlTrigger.cs
- ResourcesGenerator.cs
- PrivilegedConfigurationManager.cs
- CngProvider.cs
- DependencyObject.cs
- ToolBarButton.cs
- GeneratedCodeAttribute.cs
- MemberDescriptor.cs
- InternalReceiveMessage.cs
- ContentElement.cs
- XmlWrappingWriter.cs
- RefExpr.cs
- StyleCollectionEditor.cs
- ControlValuePropertyAttribute.cs
- HtmlElementEventArgs.cs
- LinkedList.cs
- StreamingContext.cs
- TransformGroup.cs
- Util.cs
- DataSourceConverter.cs
- MetadataItem.cs
- StaticFileHandler.cs
- NonParentingControl.cs
- InvalidMessageContractException.cs
- ReadOnlyObservableCollection.cs
- __ConsoleStream.cs
- translator.cs
- StyleXamlParser.cs
- ImageSourceConverter.cs
- SRef.cs
- WebPartConnectionsConfigureVerb.cs
- DragEvent.cs
- XmlIgnoreAttribute.cs
- EmbeddedMailObjectsCollection.cs
- CodeTypeMember.cs
- TreeViewImageIndexConverter.cs
- Roles.cs
- QueryMath.cs
- HtmlEmptyTagControlBuilder.cs
- PeerCollaborationPermission.cs
- SimpleType.cs
- ThicknessAnimationBase.cs
- StringWriter.cs
- SqlSupersetValidator.cs
- ELinqQueryState.cs
- CodeTryCatchFinallyStatement.cs
- RegexGroup.cs
- RestHandler.cs
- DataGridViewCheckBoxColumn.cs
- Simplifier.cs
- PostBackOptions.cs
- URLMembershipCondition.cs
- DependencyPropertyAttribute.cs
- WeakEventManager.cs
- ManagedFilter.cs
- Currency.cs
- WebPartZoneCollection.cs
- FloatSumAggregationOperator.cs
- GenericAuthenticationEventArgs.cs
- BaseTemplateParser.cs
- PriorityQueue.cs
- ThreadSafeMessageFilterTable.cs
- PropertyEmitterBase.cs
- ContravarianceAdapter.cs
- CookieHandler.cs
- LinearGradientBrush.cs
- QueryPrefixOp.cs
- MouseGesture.cs
- CellParagraph.cs
- DPTypeDescriptorContext.cs
- AtomServiceDocumentSerializer.cs
- CapabilitiesRule.cs
- XmlNode.cs
- PhonemeEventArgs.cs
- DataRelationCollection.cs
- BrowserCapabilitiesFactory.cs