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
- SimpleMailWebEventProvider.cs
- DesignerActionUI.cs
- ProfileProvider.cs
- StringArrayConverter.cs
- TypeCodeDomSerializer.cs
- HandlerBase.cs
- WebPartVerbCollection.cs
- ChildDocumentBlock.cs
- ChineseLunisolarCalendar.cs
- GridSplitter.cs
- QilFactory.cs
- ClientWindowsAuthenticationMembershipProvider.cs
- HScrollProperties.cs
- BrushConverter.cs
- XmlSchemaSimpleType.cs
- InternalControlCollection.cs
- DbMetaDataFactory.cs
- PriorityBindingExpression.cs
- XPathDocumentBuilder.cs
- SafeRightsManagementQueryHandle.cs
- VersionedStream.cs
- GeneralEndpointIdentity.cs
- SizeConverter.cs
- WebServiceParameterData.cs
- DeploymentSection.cs
- IERequestCache.cs
- CodeIdentifier.cs
- wgx_render.cs
- LingerOption.cs
- Grid.cs
- controlskin.cs
- Bidi.cs
- TextEditorTables.cs
- TypeUtil.cs
- ListSourceHelper.cs
- Matrix.cs
- TableCell.cs
- SerialPinChanges.cs
- PeerEndPoint.cs
- ConfigXmlElement.cs
- DetailsViewInsertEventArgs.cs
- CaseStatement.cs
- DiscoveryServerProtocol.cs
- _emptywebproxy.cs
- ReflectionUtil.cs
- IProvider.cs
- SqlClientWrapperSmiStreamChars.cs
- CompoundFileReference.cs
- WindowsFormsSectionHandler.cs
- EventMap.cs
- PageRequestManager.cs
- ReadOnlyTernaryTree.cs
- XPathQilFactory.cs
- _LocalDataStore.cs
- RepeaterItemCollection.cs
- VerticalAlignConverter.cs
- InputBinding.cs
- EntityClassGenerator.cs
- ValidationResult.cs
- TraceContext.cs
- IntegerFacetDescriptionElement.cs
- TreeViewBindingsEditor.cs
- ComplexPropertyEntry.cs
- UInt16Storage.cs
- UnsafeNativeMethods.cs
- OdbcConnectionPoolProviderInfo.cs
- _LocalDataStore.cs
- TableCellCollection.cs
- HashCodeCombiner.cs
- AppDomainProtocolHandler.cs
- SmiMetaData.cs
- StaticSiteMapProvider.cs
- RegistrationServices.cs
- GestureRecognizer.cs
- ResourceExpressionBuilder.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- PageSetupDialog.cs
- MetadataPropertyvalue.cs
- HwndSubclass.cs
- TextBoxAutomationPeer.cs
- Psha1DerivedKeyGenerator.cs
- ButtonField.cs
- _ListenerResponseStream.cs
- UnsafeNativeMethods.cs
- CompleteWizardStep.cs
- COM2Properties.cs
- XmlRootAttribute.cs
- Utilities.cs
- DoWorkEventArgs.cs
- GridViewDeletedEventArgs.cs
- ControlEvent.cs
- LocalizableAttribute.cs
- ListenDesigner.cs
- DataTrigger.cs
- cache.cs
- ParameterBinding.cs
- Variable.cs
- XamlBuildProvider.cs
- SafeRegistryHandle.cs
- Crypto.cs