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
- InternalsVisibleToAttribute.cs
- WizardStepBase.cs
- ParentQuery.cs
- _LocalDataStore.cs
- Point3DCollectionValueSerializer.cs
- StyleTypedPropertyAttribute.cs
- IconConverter.cs
- NonVisualControlAttribute.cs
- PersonalizationDictionary.cs
- CriticalExceptions.cs
- CLRBindingWorker.cs
- AvTraceFormat.cs
- SoapSchemaMember.cs
- StoreAnnotationsMap.cs
- HttpConfigurationContext.cs
- SwitchLevelAttribute.cs
- DebugController.cs
- InvalidOperationException.cs
- UnsafeNativeMethodsPenimc.cs
- LoginCancelEventArgs.cs
- DeviceContext2.cs
- CopyAttributesAction.cs
- Activity.cs
- EntityContainer.cs
- HtmlGenericControl.cs
- WhitespaceRule.cs
- SqlLiftIndependentRowExpressions.cs
- LicenseProviderAttribute.cs
- XmlRawWriterWrapper.cs
- OdbcStatementHandle.cs
- WebServiceHandlerFactory.cs
- ImageDrawing.cs
- bidPrivateBase.cs
- SoapFault.cs
- ServiceHttpModule.cs
- DocumentViewerConstants.cs
- XmlSchemaCompilationSettings.cs
- ContentOperations.cs
- CompressedStack.cs
- RegexCompiler.cs
- ObjectDataSourceDisposingEventArgs.cs
- BamlLocalizableResourceKey.cs
- DataGridCellInfo.cs
- SequenceDesignerAccessibleObject.cs
- Parser.cs
- WorkflowInstanceTerminatedRecord.cs
- XPathSingletonIterator.cs
- TemplateDefinition.cs
- SiteMapNodeCollection.cs
- SimpleHandlerFactory.cs
- AudioFileOut.cs
- NonSerializedAttribute.cs
- DocComment.cs
- Matrix.cs
- HtmlInputHidden.cs
- Logging.cs
- ObjectManager.cs
- KeySplineConverter.cs
- ObjectListShowCommandsEventArgs.cs
- WebCategoryAttribute.cs
- WorkflowServiceNamespace.cs
- MenuEventArgs.cs
- ResourceLoader.cs
- DatePicker.cs
- FormsAuthenticationUser.cs
- LineVisual.cs
- ObjectDataSourceDisposingEventArgs.cs
- SymbolPair.cs
- QilXmlReader.cs
- Command.cs
- MemberHolder.cs
- InstancePersistenceCommandException.cs
- OrderedDictionaryStateHelper.cs
- ValidationSummary.cs
- RoutedEventHandlerInfo.cs
- JavaScriptString.cs
- UIElementParaClient.cs
- MaterialGroup.cs
- RedirectionProxy.cs
- LineGeometry.cs
- RelatedCurrencyManager.cs
- QfeChecker.cs
- ToolStripSplitStackLayout.cs
- BaseParagraph.cs
- LinearGradientBrush.cs
- HostedElements.cs
- DefaultValueAttribute.cs
- PostBackTrigger.cs
- XmlSerializationWriter.cs
- AccessControlList.cs
- httpapplicationstate.cs
- WindowsAltTab.cs
- MethodBody.cs
- QueryStringHandler.cs
- ConfigurationLocationCollection.cs
- StrongNameHelpers.cs
- UTF7Encoding.cs
- QueryContinueDragEventArgs.cs
- DataGridRowHeader.cs
- DesignerOptionService.cs