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
- MenuItemStyleCollection.cs
- SecurityNegotiationException.cs
- ObjectRef.cs
- BaseDataBoundControl.cs
- CurrencyWrapper.cs
- FrameworkContentElementAutomationPeer.cs
- XPathNodeIterator.cs
- HtmlInputHidden.cs
- PasswordPropertyTextAttribute.cs
- AdvancedBindingPropertyDescriptor.cs
- PropertySet.cs
- CompilerTypeWithParams.cs
- TCEAdapterGenerator.cs
- AsyncOperationManager.cs
- SqlDataSourceEnumerator.cs
- ICollection.cs
- PeerNameRecordCollection.cs
- Compress.cs
- InputProcessorProfiles.cs
- sqlmetadatafactory.cs
- XmlUtilWriter.cs
- httpstaticobjectscollection.cs
- DataBinding.cs
- SecurityTokenReferenceStyle.cs
- Latin1Encoding.cs
- CryptoHandle.cs
- EdmType.cs
- WriteableOnDemandStream.cs
- ConfigurationStrings.cs
- DataKey.cs
- XmlAttributes.cs
- TableCell.cs
- DataGridViewColumnEventArgs.cs
- TextClipboardData.cs
- SizeAnimationUsingKeyFrames.cs
- TextServicesCompartmentEventSink.cs
- TrustLevelCollection.cs
- WrapPanel.cs
- Binding.cs
- RegistryKey.cs
- ApplicationDirectory.cs
- DeclarativeCatalogPart.cs
- TextWriter.cs
- DesigntimeLicenseContextSerializer.cs
- TextElementEnumerator.cs
- RangeValuePatternIdentifiers.cs
- CookieProtection.cs
- Assembly.cs
- UpdateExpressionVisitor.cs
- TagPrefixAttribute.cs
- WebHttpBindingCollectionElement.cs
- MemberAssignmentAnalysis.cs
- CachingHintValidation.cs
- TextRangeProviderWrapper.cs
- QueryOptionExpression.cs
- Base64Stream.cs
- ConfigurationLocationCollection.cs
- CommentEmitter.cs
- SafeWaitHandle.cs
- TaskHelper.cs
- PackageDigitalSignatureManager.cs
- SqlRewriteScalarSubqueries.cs
- AttributeEmitter.cs
- ApplyTemplatesAction.cs
- LineServicesRun.cs
- StickyNote.cs
- ApplicationServiceManager.cs
- OdbcConnectionFactory.cs
- DesignerAttribute.cs
- DataMemberFieldConverter.cs
- DrawingContextDrawingContextWalker.cs
- Maps.cs
- TextSelectionHighlightLayer.cs
- Stacktrace.cs
- AttributeData.cs
- ForeignKeyConstraint.cs
- MappingModelBuildProvider.cs
- FontSizeConverter.cs
- AssemblyUtil.cs
- CellLabel.cs
- XmlSerializableWriter.cs
- XmlDataSourceView.cs
- WebPartHelpVerb.cs
- DynamicQueryableWrapper.cs
- Int64Storage.cs
- Library.cs
- OleDbParameterCollection.cs
- HttpException.cs
- DataRecordObjectView.cs
- ValidatedControlConverter.cs
- URIFormatException.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- Pen.cs
- WindowsTreeView.cs
- XamlPathDataSerializer.cs
- BitmapEffectInputConnector.cs
- PixelFormat.cs
- CollectionBuilder.cs
- SelectionUIService.cs
- securitycriticaldata.cs