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
- NamespaceEmitter.cs
- DetailsViewModeEventArgs.cs
- SiteMapSection.cs
- ColumnWidthChangingEvent.cs
- PointAnimationUsingKeyFrames.cs
- SizeValueSerializer.cs
- DispatcherProcessingDisabled.cs
- UDPClient.cs
- XmlSchemaProviderAttribute.cs
- NumericUpDown.cs
- DictionaryTraceRecord.cs
- XmlReflectionImporter.cs
- ObservableCollectionDefaultValueFactory.cs
- SQLMoney.cs
- mda.cs
- EntityProviderServices.cs
- DropShadowBitmapEffect.cs
- HttpWebRequestElement.cs
- QilIterator.cs
- FontEditor.cs
- ILGenerator.cs
- UnsafeNativeMethods.cs
- ButtonBaseDesigner.cs
- XmlCharacterData.cs
- DataMemberFieldConverter.cs
- CompModSwitches.cs
- CodeConditionStatement.cs
- DateTimeFormatInfo.cs
- securitycriticaldataformultiplegetandset.cs
- ArrangedElementCollection.cs
- Selection.cs
- ListViewGroupCollectionEditor.cs
- KeySplineConverter.cs
- CSharpCodeProvider.cs
- XmlAnyElementAttributes.cs
- Line.cs
- TargetException.cs
- FormView.cs
- MultiSelectRootGridEntry.cs
- httpstaticobjectscollection.cs
- LinkClickEvent.cs
- SeparatorAutomationPeer.cs
- ToolStripItemCollection.cs
- Timeline.cs
- HiddenFieldPageStatePersister.cs
- StyleModeStack.cs
- BinHexDecoder.cs
- XmlSchemaSimpleContentExtension.cs
- EntityDataSourceViewSchema.cs
- TimeZoneInfo.cs
- Literal.cs
- TextAutomationPeer.cs
- DateTimeConverter2.cs
- MemberHolder.cs
- ChunkedMemoryStream.cs
- ViewEventArgs.cs
- RegistrationProxy.cs
- SystemNetworkInterface.cs
- Viewport3DVisual.cs
- CharConverter.cs
- ListViewGroup.cs
- FtpWebRequest.cs
- MatrixStack.cs
- WeakReadOnlyCollection.cs
- InvalidProgramException.cs
- CommonObjectSecurity.cs
- ScriptingScriptResourceHandlerSection.cs
- AsymmetricSignatureDeformatter.cs
- ProvideValueServiceProvider.cs
- DrawingVisual.cs
- _ListenerAsyncResult.cs
- EncoderNLS.cs
- ContentPosition.cs
- ReflectTypeDescriptionProvider.cs
- Cursors.cs
- ObfuscateAssemblyAttribute.cs
- TreeNodeStyleCollection.cs
- Mapping.cs
- DetailsViewPagerRow.cs
- AppDomainAttributes.cs
- DbDataReader.cs
- CommonDialog.cs
- PagerSettings.cs
- SessionStateContainer.cs
- XmlSubtreeReader.cs
- Scalars.cs
- WriteTimeStream.cs
- ReferenceService.cs
- DefaultValueAttribute.cs
- ReversePositionQuery.cs
- HideDisabledControlAdapter.cs
- SettingsContext.cs
- ImageButton.cs
- DiffuseMaterial.cs
- LockingPersistenceProvider.cs
- NumberSubstitution.cs
- SqlGenerator.cs
- infer.cs
- DataGridViewCellPaintingEventArgs.cs
- Executor.cs