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
- GlyphShapingProperties.cs
- ISAPIWorkerRequest.cs
- ParentQuery.cs
- BufferedStream.cs
- SecurityTokenValidationException.cs
- DateTimePicker.cs
- PinnedBufferMemoryStream.cs
- BinaryFormatterWriter.cs
- ListViewUpdatedEventArgs.cs
- FrameworkContentElementAutomationPeer.cs
- LayoutTableCell.cs
- TimeSpanMinutesConverter.cs
- EmptyEnumerable.cs
- WpfPayload.cs
- Comparer.cs
- DataSourceBooleanViewSchemaConverter.cs
- RegexRunnerFactory.cs
- glyphs.cs
- RadialGradientBrush.cs
- ClipboardData.cs
- Base64Encoding.cs
- StylusPointPropertyId.cs
- WebConfigurationHostFileChange.cs
- Menu.cs
- DataServiceClientException.cs
- AdRotatorDesigner.cs
- RestClientProxyHandler.cs
- ToolStripDropDownButton.cs
- RC2CryptoServiceProvider.cs
- PeerEndPoint.cs
- XmlAttribute.cs
- PerformanceCounterCategory.cs
- ClientClassGenerator.cs
- RefExpr.cs
- X509Chain.cs
- AsmxEndpointPickerExtension.cs
- ResourceIDHelper.cs
- IDQuery.cs
- SqlFunctionAttribute.cs
- FontTypeConverter.cs
- Item.cs
- FileDialog.cs
- XmlSchemaAttributeGroupRef.cs
- IPAddress.cs
- ColumnWidthChangingEvent.cs
- SapiRecognizer.cs
- Vector3DCollectionConverter.cs
- TextCollapsingProperties.cs
- SizeConverter.cs
- LZCodec.cs
- FindRequestContext.cs
- DefaultSection.cs
- CookielessHelper.cs
- ThicknessConverter.cs
- TableCell.cs
- ResourceContainer.cs
- WebPartMinimizeVerb.cs
- SolidColorBrush.cs
- DataView.cs
- ConnectionStringsSection.cs
- MaterializeFromAtom.cs
- XmlSchemaAnnotation.cs
- ClientScriptManagerWrapper.cs
- EndpointAddressMessageFilterTable.cs
- TimeManager.cs
- DirectoryRootQuery.cs
- FileSystemInfo.cs
- OperationParameterInfo.cs
- DesignerOptionService.cs
- TextBox.cs
- AnnotationHelper.cs
- DataGridCellClipboardEventArgs.cs
- _Win32.cs
- EditorAttributeInfo.cs
- ColorComboBox.cs
- ReadOnlyDictionary.cs
- NameTable.cs
- SponsorHelper.cs
- Stroke.cs
- StylusButtonEventArgs.cs
- Publisher.cs
- dtdvalidator.cs
- GeometryModel3D.cs
- updateconfighost.cs
- MediaTimeline.cs
- XsltSettings.cs
- BrowserDefinitionCollection.cs
- NativeRecognizer.cs
- HttpBrowserCapabilitiesBase.cs
- GraphicsPath.cs
- BreakRecordTable.cs
- TokenBasedSet.cs
- CachedCompositeFamily.cs
- CodeCompiler.cs
- InvokeMethodDesigner.xaml.cs
- HMACSHA384.cs
- GridViewEditEventArgs.cs
- IERequestCache.cs
- SplitterDesigner.cs
- WpfPayload.cs