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
- SourceInterpreter.cs
- Button.cs
- TextWriter.cs
- CacheMemory.cs
- WorkflowInstanceSuspendedRecord.cs
- FontStretches.cs
- DataList.cs
- NeutralResourcesLanguageAttribute.cs
- Hex.cs
- TracedNativeMethods.cs
- dsa.cs
- Pair.cs
- CounterSample.cs
- ObservableCollection.cs
- CompilerParameters.cs
- GuidTagList.cs
- TCPListener.cs
- AuthenticateEventArgs.cs
- DesignerDataParameter.cs
- CellParagraph.cs
- HttpResponseInternalBase.cs
- LayoutInformation.cs
- ImageClickEventArgs.cs
- VisualTreeHelper.cs
- ModifiableIteratorCollection.cs
- GridViewAutoFormat.cs
- IListConverters.cs
- EdmScalarPropertyAttribute.cs
- GraphicsState.cs
- TextPointer.cs
- ProcessRequestArgs.cs
- AsyncResult.cs
- Configuration.cs
- CompositeClientFormatter.cs
- AbstractSvcMapFileLoader.cs
- IntellisenseTextBox.cs
- SqlConnectionPoolProviderInfo.cs
- BreakRecordTable.cs
- DataSourceCacheDurationConverter.cs
- HttpApplicationFactory.cs
- ClientUtils.cs
- DescriptionAttribute.cs
- Size.cs
- WebPartChrome.cs
- TrackingServices.cs
- _TransmitFileOverlappedAsyncResult.cs
- ServiceOperationHelpers.cs
- ConfigurationElementCollection.cs
- ObjectManager.cs
- StreamResourceInfo.cs
- DateTimePicker.cs
- DesignTimeXamlWriter.cs
- COM2ColorConverter.cs
- CurrencyManager.cs
- BatchStream.cs
- TabControlCancelEvent.cs
- SqlClientWrapperSmiStreamChars.cs
- GlobalizationAssembly.cs
- StylusPointPropertyUnit.cs
- _KerberosClient.cs
- BidPrivateBase.cs
- FieldNameLookup.cs
- HistoryEventArgs.cs
- BitmapImage.cs
- CapabilitiesRule.cs
- DocumentViewerHelper.cs
- CodeArrayIndexerExpression.cs
- typedescriptorpermissionattribute.cs
- BamlBinaryWriter.cs
- SharedUtils.cs
- XMLUtil.cs
- CaseExpr.cs
- UriTemplateTrieNode.cs
- Parameter.cs
- HashSet.cs
- CompositionAdorner.cs
- ClientFormsIdentity.cs
- DefaultParameterValueAttribute.cs
- WorkflowDesignerColors.cs
- Deflater.cs
- ConnectionStringsSection.cs
- AmbientValueAttribute.cs
- GridViewColumnCollection.cs
- SystemBrushes.cs
- TdsParserSafeHandles.cs
- CLRBindingWorker.cs
- NodeLabelEditEvent.cs
- MarginsConverter.cs
- processwaithandle.cs
- FtpCachePolicyElement.cs
- BaseDataList.cs
- DefaultBinder.cs
- XmlSchemaAppInfo.cs
- TreeIterators.cs
- ThousandthOfEmRealDoubles.cs
- RoleManagerModule.cs
- VoiceObjectToken.cs
- DuplicateWaitObjectException.cs
- SerialErrors.cs
- SqlFunctionAttribute.cs