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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- StateDesignerConnector.cs
- XmlSchemaComplexType.cs
- DataServices.cs
- HTTPNotFoundHandler.cs
- TabItemWrapperAutomationPeer.cs
- UriParserTemplates.cs
- URI.cs
- RedistVersionInfo.cs
- RuntimeHandles.cs
- SecurityHelper.cs
- CollectionViewSource.cs
- PropertyMetadata.cs
- EnumDataContract.cs
- SqlInternalConnectionSmi.cs
- SendingRequestEventArgs.cs
- SetIterators.cs
- CharStorage.cs
- PDBReader.cs
- Operator.cs
- NameValueConfigurationElement.cs
- HMACSHA1.cs
- DrawListViewItemEventArgs.cs
- InputBindingCollection.cs
- Privilege.cs
- XmlTextReaderImplHelpers.cs
- FixedDocumentPaginator.cs
- ArgIterator.cs
- HttpApplicationFactory.cs
- UrlPropertyAttribute.cs
- UncommonField.cs
- DataServices.cs
- CachingHintValidation.cs
- DataServiceRequest.cs
- InternalBase.cs
- _DigestClient.cs
- Function.cs
- SuspendDesigner.cs
- Activator.cs
- ColumnResizeUndoUnit.cs
- ProviderException.cs
- InertiaRotationBehavior.cs
- PlainXmlWriter.cs
- ServiceModelExtensionElement.cs
- TimeoutException.cs
- StaticContext.cs
- CallContext.cs
- InternalConfigEventArgs.cs
- HttpRequest.cs
- PerformanceCounterLib.cs
- GridViewHeaderRowPresenter.cs
- ViewValidator.cs
- _FtpControlStream.cs
- ContentValidator.cs
- WebPartCatalogAddVerb.cs
- EncryptedData.cs
- HtmlTableRowCollection.cs
- SyntaxCheck.cs
- HelpInfo.cs
- MethodCallConverter.cs
- FileDialogCustomPlaces.cs
- Vector3DCollectionConverter.cs
- ObjectToken.cs
- ToolTipAutomationPeer.cs
- DetailsViewActionList.cs
- CardSpacePolicyElement.cs
- SoapAttributeAttribute.cs
- BasicHttpSecurity.cs
- TypefaceMap.cs
- PrivilegeNotHeldException.cs
- BrowserCapabilitiesFactory.cs
- OrCondition.cs
- WhereaboutsReader.cs
- InstancePersistenceCommand.cs
- SecurityHeaderTokenResolver.cs
- DesignerDataTable.cs
- ColumnHeaderConverter.cs
- PropertyDescriptor.cs
- PersistenceProviderFactory.cs
- XmlSchemaExternal.cs
- ServiceBuildProvider.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- Nullable.cs
- Triplet.cs
- TextDataBindingHandler.cs
- UniqueTransportManagerRegistration.cs
- TableColumn.cs
- SyntaxCheck.cs
- SystemSounds.cs
- XmlNullResolver.cs
- oledbmetadatacolumnnames.cs
- WsdlBuildProvider.cs
- XamlSerializerUtil.cs
- NameValueSectionHandler.cs
- serverconfig.cs
- Error.cs
- FloaterParaClient.cs
- WebEncodingValidatorAttribute.cs
- SchemaNames.cs
- Tablet.cs
- GridViewPageEventArgs.cs