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
- ParallelEnumerable.cs
- SequenceDesigner.cs
- LassoSelectionBehavior.cs
- CryptoApi.cs
- DataObjectMethodAttribute.cs
- DataSourceControlBuilder.cs
- ServerTooBusyException.cs
- CompleteWizardStep.cs
- StylusEventArgs.cs
- ResourcesBuildProvider.cs
- CursorInteropHelper.cs
- RubberbandSelector.cs
- GridItemProviderWrapper.cs
- KeyTimeConverter.cs
- OneOf.cs
- HtmlShim.cs
- RepeatInfo.cs
- TagPrefixInfo.cs
- ToolboxDataAttribute.cs
- RecordManager.cs
- ISAPIApplicationHost.cs
- Msec.cs
- HandlerBase.cs
- TraceHandler.cs
- Transform3D.cs
- CqlErrorHelper.cs
- AlternateViewCollection.cs
- CompilerTypeWithParams.cs
- DefaultMemberAttribute.cs
- OleDbException.cs
- DrawingImage.cs
- DataObject.cs
- Int32Converter.cs
- DocumentManager.cs
- LoginUtil.cs
- CompilerWrapper.cs
- ProfileEventArgs.cs
- AnnotationHighlightLayer.cs
- DateTimeParse.cs
- ChannelServices.cs
- IntegerFacetDescriptionElement.cs
- EntityContainerEmitter.cs
- WeakHashtable.cs
- DesignerDataColumn.cs
- basemetadatamappingvisitor.cs
- UnmanagedMemoryStreamWrapper.cs
- CodeGenerator.cs
- UdpDiscoveryEndpoint.cs
- ISessionStateStore.cs
- WindowsFormsHelpers.cs
- WeakEventManager.cs
- ValidationErrorEventArgs.cs
- RubberbandSelector.cs
- WebPartActionVerb.cs
- LocalClientSecuritySettingsElement.cs
- XmlElement.cs
- RouteData.cs
- EncoderNLS.cs
- FileVersionInfo.cs
- EventMappingSettingsCollection.cs
- StylusPlugin.cs
- TypeReference.cs
- SqlInternalConnectionSmi.cs
- Color.cs
- BuildProvidersCompiler.cs
- ScopelessEnumAttribute.cs
- PropertyPathWorker.cs
- AppDomainProtocolHandler.cs
- PixelFormatConverter.cs
- DataSourceHelper.cs
- StrokeDescriptor.cs
- ToolstripProfessionalRenderer.cs
- MulticastDelegate.cs
- Form.cs
- BamlRecordHelper.cs
- SqlBuilder.cs
- HyperLinkStyle.cs
- RijndaelManaged.cs
- XsltLibrary.cs
- HtmlControl.cs
- HtmlTableCellCollection.cs
- SrgsSubset.cs
- TopClause.cs
- XmlSchemaSimpleContentRestriction.cs
- _SslState.cs
- WmlListAdapter.cs
- MultilineStringConverter.cs
- BaseTemplateCodeDomTreeGenerator.cs
- contentDescriptor.cs
- PopupControlService.cs
- SoapIncludeAttribute.cs
- LocationUpdates.cs
- ThreadPool.cs
- ConfigurationConverterBase.cs
- PageSettings.cs
- SaveWorkflowCommand.cs
- CompilationUtil.cs
- StreamSecurityUpgradeInitiatorAsyncResult.cs
- ObjectDataSourceSelectingEventArgs.cs
- DataGridItemCollection.cs