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
- EncryptedData.cs
- CheckableControlBaseAdapter.cs
- WebBrowser.cs
- Mapping.cs
- EventDescriptorCollection.cs
- TextDecorationUnitValidation.cs
- WebPartPersonalization.cs
- XmlnsPrefixAttribute.cs
- CapabilitiesSection.cs
- SingleObjectCollection.cs
- FontWeights.cs
- BitmapImage.cs
- AffineTransform3D.cs
- LayoutUtils.cs
- Constant.cs
- NavigateEvent.cs
- ProfileBuildProvider.cs
- AssociationEndMember.cs
- UIElement3D.cs
- MasterPageCodeDomTreeGenerator.cs
- WebPartConnectionsConfigureVerb.cs
- ObservableDictionary.cs
- CreateSequenceResponse.cs
- Char.cs
- RegionIterator.cs
- XamlHostingSectionGroup.cs
- HttpVersion.cs
- RadioButtonStandardAdapter.cs
- HttpConfigurationSystem.cs
- ViewValidator.cs
- IDispatchConstantAttribute.cs
- StagingAreaInputItem.cs
- ResourceWriter.cs
- DateTimeStorage.cs
- Point.cs
- XmlHierarchicalEnumerable.cs
- ListSurrogate.cs
- UIElementHelper.cs
- XmlSchemaSet.cs
- SynchronousChannelMergeEnumerator.cs
- Menu.cs
- FieldNameLookup.cs
- RuntimeConfigLKG.cs
- GroupAggregateExpr.cs
- ObjectDataSourceFilteringEventArgs.cs
- SettingsAttributes.cs
- PeerChannelListener.cs
- HttpGetClientProtocol.cs
- OracleSqlParser.cs
- BindStream.cs
- ServerIdentity.cs
- BindingMAnagerBase.cs
- Serializer.cs
- NotEqual.cs
- GridViewItemAutomationPeer.cs
- MarkupCompiler.cs
- DataColumn.cs
- WebConfigurationManager.cs
- SimpleLine.cs
- XmlQualifiedNameTest.cs
- SolidColorBrush.cs
- DataTransferEventArgs.cs
- QilValidationVisitor.cs
- SqlNamer.cs
- TrustManager.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- SqlDataSourceQueryConverter.cs
- XmlToDatasetMap.cs
- IsolatedStorageFileStream.cs
- PenContexts.cs
- WebPartConnectionsCloseVerb.cs
- TextServicesPropertyRanges.cs
- DbConnectionPoolCounters.cs
- ItemCollection.cs
- HttpProfileBase.cs
- ByteAnimationUsingKeyFrames.cs
- ToolboxCategory.cs
- Inline.cs
- ApplicationSecurityManager.cs
- formatstringdialog.cs
- GridPattern.cs
- SelectionListComponentEditor.cs
- TransformFinalBlockRequest.cs
- Validator.cs
- Evidence.cs
- ReferenceEqualityComparer.cs
- Command.cs
- printdlgexmarshaler.cs
- WmlPhoneCallAdapter.cs
- PasswordBoxAutomationPeer.cs
- ColumnResult.cs
- GACMembershipCondition.cs
- Table.cs
- ObjectDataSourceView.cs
- HwndTarget.cs
- XmlHierarchicalDataSourceView.cs
- TreeViewCancelEvent.cs
- WebPartMinimizeVerb.cs
- LayoutInformation.cs
- SoapIgnoreAttribute.cs