Code:
/ 4.0 / 4.0 / 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. 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
- ConnectionStringsSection.cs
- DataGridViewRowsAddedEventArgs.cs
- AutomationElementCollection.cs
- MetadataItemCollectionFactory.cs
- ExecutionContext.cs
- InternalRelationshipCollection.cs
- OleDbPermission.cs
- GridEntryCollection.cs
- ObjectPersistData.cs
- PublisherIdentityPermission.cs
- SecurityPolicySection.cs
- FieldTemplateUserControl.cs
- AssertFilter.cs
- xmlsaver.cs
- TimeSpan.cs
- WebPartCancelEventArgs.cs
- MenuItemBindingCollection.cs
- NamespaceList.cs
- EtwTrackingParticipant.cs
- FlowDocumentReader.cs
- TextDecorations.cs
- ObjectStateManagerMetadata.cs
- DrawingVisual.cs
- PropertyValueChangedEvent.cs
- OleDbFactory.cs
- Style.cs
- _ListenerResponseStream.cs
- DesignerCalendarAdapter.cs
- LinearGradientBrush.cs
- WindowsSysHeader.cs
- AlternationConverter.cs
- IndentedTextWriter.cs
- MetafileHeaderEmf.cs
- Input.cs
- ServiceRouteHandler.cs
- ObjectDataSource.cs
- DashStyle.cs
- remotingproxy.cs
- EventBuilder.cs
- TypeSystem.cs
- SymbolPair.cs
- BufferAllocator.cs
- HttpHeaderCollection.cs
- ModelService.cs
- TreeNodeMouseHoverEvent.cs
- externdll.cs
- FrameworkElement.cs
- CacheModeValueSerializer.cs
- TreeViewCancelEvent.cs
- WeakReference.cs
- loginstatus.cs
- ASCIIEncoding.cs
- Classification.cs
- AsymmetricKeyExchangeDeformatter.cs
- AppDomainProtocolHandler.cs
- RemotingSurrogateSelector.cs
- FilteredAttributeCollection.cs
- DbMetaDataFactory.cs
- XamlTreeBuilder.cs
- EastAsianLunisolarCalendar.cs
- AnnotationAuthorChangedEventArgs.cs
- DeviceContexts.cs
- Renderer.cs
- CodeParameterDeclarationExpression.cs
- PeerNodeTraceRecord.cs
- PartBasedPackageProperties.cs
- CodeDirectiveCollection.cs
- ReadContentAsBinaryHelper.cs
- TransformGroup.cs
- SvcMapFileSerializer.cs
- CssTextWriter.cs
- CommonXSendMessage.cs
- ModulesEntry.cs
- CodeDelegateInvokeExpression.cs
- StreamGeometryContext.cs
- Literal.cs
- ConstructorArgumentAttribute.cs
- Label.cs
- CatalogZoneBase.cs
- UserPreferenceChangedEventArgs.cs
- ICspAsymmetricAlgorithm.cs
- CodeCastExpression.cs
- LineInfo.cs
- ProcessingInstructionAction.cs
- Decimal.cs
- PublisherIdentityPermission.cs
- ConditionalAttribute.cs
- SaveCardRequest.cs
- AttachedPropertyMethodSelector.cs
- TileBrush.cs
- ToolStripSeparatorRenderEventArgs.cs
- SelectingProviderEventArgs.cs
- HttpChannelHelpers.cs
- WebHttpBinding.cs
- RegexFCD.cs
- FlowchartDesigner.xaml.cs
- InvariantComparer.cs
- DefaultMemberAttribute.cs
- MsmqInputChannelListener.cs
- RegisteredDisposeScript.cs