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
- XmlWhitespace.cs
- ByteArrayHelperWithString.cs
- RootBuilder.cs
- SymbolType.cs
- ADMembershipProvider.cs
- SafeHandles.cs
- DataGridViewHeaderCell.cs
- EncryptedData.cs
- SystemUdpStatistics.cs
- WebServiceParameterData.cs
- KoreanCalendar.cs
- CodeDefaultValueExpression.cs
- ThaiBuddhistCalendar.cs
- SpecialNameAttribute.cs
- WebBrowserNavigatingEventHandler.cs
- ListViewSelectEventArgs.cs
- MarkupProperty.cs
- PathSegment.cs
- TextTreeFixupNode.cs
- DrawingImage.cs
- Baml2006ReaderSettings.cs
- BehaviorDragDropEventArgs.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- GenericUriParser.cs
- TextAnchor.cs
- mil_sdk_version.cs
- Imaging.cs
- NullableIntSumAggregationOperator.cs
- Rotation3D.cs
- XmlUtil.cs
- StringSorter.cs
- ErrorsHelper.cs
- Color.cs
- oledbconnectionstring.cs
- FusionWrap.cs
- Wildcard.cs
- RangeValueProviderWrapper.cs
- X509CertificateCollection.cs
- ComPlusThreadInitializer.cs
- XsltArgumentList.cs
- ZipIOLocalFileBlock.cs
- AppSecurityManager.cs
- PrincipalPermission.cs
- GuidConverter.cs
- MissingMemberException.cs
- ListViewUpdatedEventArgs.cs
- InternalException.cs
- DataGridViewHitTestInfo.cs
- LicenseException.cs
- ActiveXContainer.cs
- SaveFileDialog.cs
- initElementDictionary.cs
- ToolboxBitmapAttribute.cs
- QilPatternVisitor.cs
- DLinqAssociationProvider.cs
- Matrix.cs
- NativeWindow.cs
- IssuedSecurityTokenParameters.cs
- WebEventCodes.cs
- FormViewPagerRow.cs
- SizeLimitedCache.cs
- CommandBindingCollection.cs
- UidManager.cs
- DefaultHttpHandler.cs
- UIElementParaClient.cs
- DocumentAutomationPeer.cs
- BitmapEffect.cs
- FontDialog.cs
- StrongTypingException.cs
- AutomationTextAttribute.cs
- ResXDataNode.cs
- HttpCapabilitiesSectionHandler.cs
- WebPartEditorCancelVerb.cs
- WindowManager.cs
- Scripts.cs
- MsmqHostedTransportManager.cs
- updatecommandorderer.cs
- SecurityElement.cs
- ListBoxAutomationPeer.cs
- ConstructorArgumentAttribute.cs
- XamlStyleSerializer.cs
- Registry.cs
- FrameworkRichTextComposition.cs
- EventLogTraceListener.cs
- TableLayoutStyleCollection.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- WebPartMinimizeVerb.cs
- Listbox.cs
- PropertyPushdownHelper.cs
- FieldNameLookup.cs
- ComponentResourceManager.cs
- QilXmlWriter.cs
- documentation.cs
- ProfilePropertySettings.cs
- Marshal.cs
- Animatable.cs
- CompositeTypefaceMetrics.cs
- ADMembershipUser.cs
- CompilerTypeWithParams.cs
- PageTheme.cs