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
- XmlRawWriterWrapper.cs
- AgileSafeNativeMemoryHandle.cs
- ProfilePropertySettings.cs
- BufferedStream2.cs
- TargetControlTypeCache.cs
- httpstaticobjectscollection.cs
- AttributeCollection.cs
- SchemaType.cs
- MemoryFailPoint.cs
- ObjectTag.cs
- SBCSCodePageEncoding.cs
- ImageIndexConverter.cs
- SchemaTableColumn.cs
- PrimitiveRenderer.cs
- DocumentViewerBaseAutomationPeer.cs
- FrugalMap.cs
- XamlPointCollectionSerializer.cs
- LeafCellTreeNode.cs
- TextMetrics.cs
- CompilationLock.cs
- ContainsRowNumberChecker.cs
- SettingsPropertyWrongTypeException.cs
- _HeaderInfoTable.cs
- LinqDataSourceValidationException.cs
- BasicExpandProvider.cs
- ObjectDataSourceMethodEditor.cs
- AutomationElementIdentifiers.cs
- DataGridTablesFactory.cs
- WaveHeader.cs
- DataGridViewAdvancedBorderStyle.cs
- LinkLabelLinkClickedEvent.cs
- XmlAnyElementAttribute.cs
- AutoCompleteStringCollection.cs
- QuadraticBezierSegment.cs
- SecurityKeyIdentifierClause.cs
- LongCountAggregationOperator.cs
- StreamResourceInfo.cs
- SqlInternalConnectionSmi.cs
- RawAppCommandInputReport.cs
- WmlTextViewAdapter.cs
- AutomationProperty.cs
- HiddenFieldPageStatePersister.cs
- SiteMapPath.cs
- ISFTagAndGuidCache.cs
- RepeaterItem.cs
- XmlArrayItemAttributes.cs
- DbInsertCommandTree.cs
- SmiXetterAccessMap.cs
- OdbcConnectionOpen.cs
- TextServicesCompartment.cs
- Debugger.cs
- BulletChrome.cs
- RequiredFieldValidator.cs
- ObjectDataSourceView.cs
- METAHEADER.cs
- StylusDownEventArgs.cs
- ReliabilityContractAttribute.cs
- StringExpressionSet.cs
- TextTreeObjectNode.cs
- DataGridCell.cs
- WindowsAltTab.cs
- XmlAttributeAttribute.cs
- LostFocusEventManager.cs
- CatalogZoneDesigner.cs
- TextSchema.cs
- DeclarativeCatalogPartDesigner.cs
- SamlAttribute.cs
- WmlTextViewAdapter.cs
- PersonalizationStateInfo.cs
- StylusPointPropertyInfoDefaults.cs
- SendKeys.cs
- HierarchicalDataSourceDesigner.cs
- IMembershipProvider.cs
- Point3DConverter.cs
- WorkflowTraceTransfer.cs
- LicenseProviderAttribute.cs
- XPathSelectionIterator.cs
- ToolStripSplitButton.cs
- MethodToken.cs
- FixUp.cs
- ImageCollectionCodeDomSerializer.cs
- XmlTextReader.cs
- HttpsChannelFactory.cs
- UnknownMessageReceivedEventArgs.cs
- FormViewUpdateEventArgs.cs
- StringFreezingAttribute.cs
- SqlOuterApplyReducer.cs
- TypeConverter.cs
- Animatable.cs
- AssemblyBuilderData.cs
- LoginCancelEventArgs.cs
- CustomErrorsSection.cs
- ErrorTableItemStyle.cs
- ClientSettings.cs
- DatatypeImplementation.cs
- TypedElement.cs
- CalendarButtonAutomationPeer.cs
- OutputCacheSection.cs
- UIElementCollection.cs
- XmlWriterTraceListener.cs