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
- MembershipPasswordException.cs
- EditorPartChrome.cs
- EndpointIdentityConverter.cs
- OuterGlowBitmapEffect.cs
- OutputCacheSettings.cs
- CodeSnippetCompileUnit.cs
- FaultReason.cs
- DocumentSequenceHighlightLayer.cs
- AssemblyName.cs
- ObjectNavigationPropertyMapping.cs
- CustomWebEventKey.cs
- DataGridTextBox.cs
- ResourceProviderFactory.cs
- XmlDeclaration.cs
- EndpointFilterProvider.cs
- DelayDesigner.cs
- Command.cs
- WindowsFormsSynchronizationContext.cs
- ComPlusContractBehavior.cs
- BmpBitmapEncoder.cs
- TypeSystem.cs
- SQLSingleStorage.cs
- Wizard.cs
- UnSafeCharBuffer.cs
- OleDbTransaction.cs
- DiffuseMaterial.cs
- TransformValueSerializer.cs
- ColumnResizeAdorner.cs
- FilePrompt.cs
- Overlapped.cs
- AppManager.cs
- RegisteredScript.cs
- ContentPropertyAttribute.cs
- TabItemAutomationPeer.cs
- XmlCharCheckingWriter.cs
- UserNamePasswordValidator.cs
- DataKeyCollection.cs
- Floater.cs
- TextFormatterImp.cs
- WebPartEditVerb.cs
- CompositeControl.cs
- RegisterResponseInfo.cs
- HttpResponse.cs
- DirectoryObjectSecurity.cs
- URI.cs
- SettingsAttributeDictionary.cs
- StreamAsIStream.cs
- ArrayHelper.cs
- SmiEventSink.cs
- SoapObjectWriter.cs
- WebPartConnectionsEventArgs.cs
- EncryptedType.cs
- DependencyObject.cs
- OutputCacheProfileCollection.cs
- MetroSerializationManager.cs
- MediaTimeline.cs
- RunInstallerAttribute.cs
- SqlGatherProducedAliases.cs
- DataObjectFieldAttribute.cs
- DemultiplexingClientMessageFormatter.cs
- InProcStateClientManager.cs
- TransformCollection.cs
- NegotiateStream.cs
- FormViewDeleteEventArgs.cs
- ApplicationDirectoryMembershipCondition.cs
- TextHidden.cs
- EntitySqlException.cs
- Literal.cs
- ExtendedProperty.cs
- QilStrConcatenator.cs
- QueueException.cs
- MembershipSection.cs
- ObjectMaterializedEventArgs.cs
- RtfControls.cs
- DatagridviewDisplayedBandsData.cs
- CodeDefaultValueExpression.cs
- ClientOptions.cs
- OperandQuery.cs
- SourceFileBuildProvider.cs
- DeflateEmulationStream.cs
- ButtonBaseAutomationPeer.cs
- TraversalRequest.cs
- DataView.cs
- UiaCoreTypesApi.cs
- ConnectionPoolRegistry.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- XmlSchemaSimpleContentExtension.cs
- GAC.cs
- BitmapEffectInput.cs
- InputBinding.cs
- x509store.cs
- CharKeyFrameCollection.cs
- ScrollEvent.cs
- LinqDataSourceHelper.cs
- HtmlWindow.cs
- OperationExecutionFault.cs
- XmlReflectionImporter.cs
- XmlSchemaSimpleContentExtension.cs
- FilteredSchemaElementLookUpTable.cs
- RijndaelManagedTransform.cs