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
- CopyOfAction.cs
- ISAPIWorkerRequest.cs
- Stack.cs
- Operators.cs
- EntityDataSourceDesignerHelper.cs
- TextEditorMouse.cs
- securitycriticaldata.cs
- XmlReflectionMember.cs
- SynchronizingStream.cs
- WebDescriptionAttribute.cs
- XmlSchemaAll.cs
- RegisteredScript.cs
- DataGridLinkButton.cs
- ToolZone.cs
- OdbcHandle.cs
- SqlMethodTransformer.cs
- XamlReaderConstants.cs
- ExcludePathInfo.cs
- ILGenerator.cs
- ItemType.cs
- ShapeTypeface.cs
- SystemBrushes.cs
- RenderDataDrawingContext.cs
- FrameworkContentElement.cs
- OleDbCommandBuilder.cs
- MatrixCamera.cs
- UrlMapping.cs
- TimeSpanSecondsConverter.cs
- DefaultTypeArgumentAttribute.cs
- EdgeProfileValidation.cs
- StructuredTypeEmitter.cs
- QilUnary.cs
- ListViewTableRow.cs
- Match.cs
- SpnegoTokenAuthenticator.cs
- FormsAuthenticationCredentials.cs
- CodeCommentStatement.cs
- Semaphore.cs
- NameTable.cs
- HwndSubclass.cs
- TextDecorationLocationValidation.cs
- Bezier.cs
- InputChannel.cs
- Confirm.cs
- WebMessageEncodingElement.cs
- DotExpr.cs
- WorkflowOperationContext.cs
- EncoderReplacementFallback.cs
- BuilderPropertyEntry.cs
- SerializationEventsCache.cs
- XmlEnumAttribute.cs
- Solver.cs
- RijndaelManaged.cs
- QilStrConcatenator.cs
- TextElement.cs
- GridView.cs
- ConfigurationConverterBase.cs
- ParameterToken.cs
- InternalControlCollection.cs
- FormViewUpdateEventArgs.cs
- BamlTreeMap.cs
- ViewBase.cs
- ObjectDataSourceSelectingEventArgs.cs
- JsonWriterDelegator.cs
- PtsPage.cs
- FrameDimension.cs
- HiddenFieldPageStatePersister.cs
- AppDomainGrammarProxy.cs
- SettingsBase.cs
- CanonicalFontFamilyReference.cs
- UnSafeCharBuffer.cs
- Point.cs
- StopStoryboard.cs
- RangeValueProviderWrapper.cs
- PointConverter.cs
- FeedUtils.cs
- AppDomainManager.cs
- RoleGroup.cs
- GiveFeedbackEventArgs.cs
- MarshalDirectiveException.cs
- DetailsViewDeletedEventArgs.cs
- ButtonRenderer.cs
- SemanticAnalyzer.cs
- UDPClient.cs
- EventItfInfo.cs
- StatusBar.cs
- EntityDescriptor.cs
- HttpWebRequest.cs
- ToolBar.cs
- RealProxy.cs
- FileDetails.cs
- XmlAnyElementAttribute.cs
- EditBehavior.cs
- HtmlControlPersistable.cs
- ResourceReferenceKeyNotFoundException.cs
- ProviderException.cs
- ClientUrlResolverWrapper.cs
- DuplexChannel.cs
- Vector3DCollectionConverter.cs
- TrustManagerPromptUI.cs