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
- MetadataItemSerializer.cs
- LogicalExpressionEditor.cs
- LabelAutomationPeer.cs
- TypeResolvingOptions.cs
- UpDownBase.cs
- OleServicesContext.cs
- DataGridViewRowEventArgs.cs
- DPTypeDescriptorContext.cs
- ServiceReference.cs
- DesignerHelpers.cs
- MsmqHostedTransportManager.cs
- ListViewUpdatedEventArgs.cs
- ApplicationSettingsBase.cs
- DecoderFallback.cs
- VirtualDirectoryMappingCollection.cs
- ContentControl.cs
- StringResourceManager.cs
- XmlNullResolver.cs
- CompressStream.cs
- cookiecollection.cs
- DesignerObject.cs
- PolicyStatement.cs
- cookie.cs
- PropertySegmentSerializationProvider.cs
- FileLogRecordHeader.cs
- ValueUnavailableException.cs
- ReadOnlyHierarchicalDataSourceView.cs
- ToolboxItem.cs
- CurrentTimeZone.cs
- AnyReturnReader.cs
- SamlAudienceRestrictionCondition.cs
- NameValuePermission.cs
- BehaviorEditorPart.cs
- SystemDropShadowChrome.cs
- ListViewGroup.cs
- CurrentChangedEventManager.cs
- RightNameExpirationInfoPair.cs
- MailAddressCollection.cs
- ScrollData.cs
- TextEditorThreadLocalStore.cs
- WaitHandleCannotBeOpenedException.cs
- ThrowHelper.cs
- PropertyDescriptorComparer.cs
- XmlName.cs
- OrderingExpression.cs
- safesecurityhelperavalon.cs
- LeaseManager.cs
- DropTarget.cs
- RectangleConverter.cs
- TextBoxView.cs
- ContractReference.cs
- __Error.cs
- BulletedListEventArgs.cs
- KeyValueConfigurationElement.cs
- SQLInt16.cs
- ReliabilityContractAttribute.cs
- EntityDataSourceDesigner.cs
- CompModSwitches.cs
- FuncTypeConverter.cs
- DelegateCompletionCallbackWrapper.cs
- LineBreakRecord.cs
- CodeIndexerExpression.cs
- Html32TextWriter.cs
- Span.cs
- RsaKeyGen.cs
- ScriptControlDescriptor.cs
- HttpErrorTraceRecord.cs
- SqlDataSourceFilteringEventArgs.cs
- Utils.cs
- arabicshape.cs
- HttpServerUtilityBase.cs
- ParseChildrenAsPropertiesAttribute.cs
- ThreadInterruptedException.cs
- AspNetSynchronizationContext.cs
- SubtreeProcessor.cs
- RawStylusInputCustomData.cs
- DecimalStorage.cs
- BrowserCapabilitiesFactory.cs
- CompModSwitches.cs
- SrgsItemList.cs
- StreamResourceInfo.cs
- NativeMethods.cs
- FactoryGenerator.cs
- DiscoveryInnerClientManaged11.cs
- XmlObjectSerializerWriteContextComplexJson.cs
- XmlDataDocument.cs
- DataPointer.cs
- ManagedIStream.cs
- FloaterParagraph.cs
- OverrideMode.cs
- CryptoProvider.cs
- QueryExpr.cs
- Rfc4050KeyFormatter.cs
- SmiTypedGetterSetter.cs
- PageVisual.cs
- RawStylusInputCustomData.cs
- ExplicitDiscriminatorMap.cs
- TypeUsage.cs
- DataGridViewIntLinkedList.cs
- EncoderFallback.cs