Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / xsp / System / Web / Extensions / ui / ScriptResourceInfo.cs / 1 / ScriptResourceInfo.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI { using System; using System.Collections; using System.Collections.Generic; using System.Globalization; using System.Reflection; using System.Text; using System.Web.Resources; using System.Web.Util; internal class ScriptResourceInfo { private string _contentType; private bool _performSubstitution; private string _scriptName; private string _scriptResourceName; private string _typeName; private bool _isDebug; private static readonly IDictionary _scriptCache = Hashtable.Synchronized(new Hashtable()); private static readonly IDictionary _duplicateScriptAttributesChecked = Hashtable.Synchronized(new Hashtable()); public static readonly ScriptResourceInfo Empty = new ScriptResourceInfo(); private ScriptResourceInfo() { } public ScriptResourceInfo(ScriptResourceAttribute attr) : this() { _scriptName = attr.ScriptName; _scriptResourceName = attr.ScriptResourceName; _typeName = attr.TypeName; } public string ContentType { get { return _contentType; } set { _contentType = value; } } public bool IsDebug { get { return _isDebug; } set { _isDebug = value; } } public bool PerformSubstitution { get { return _performSubstitution; } set { _performSubstitution = value; } } public string ScriptName { get { return _scriptName; } set { _scriptName = value; } } public string ScriptResourceName { get { return _scriptResourceName; } } public string TypeName { get { return _typeName; } } public static ScriptResourceInfo GetInstance(Assembly assembly, string resourceName) { // The first time this API is called, check for attributes that point to the same script if (!_duplicateScriptAttributesChecked.Contains(assembly)) { Dictionaryscripts = new Dictionary (); foreach (ScriptResourceAttribute attr in assembly.GetCustomAttributes(typeof(ScriptResourceAttribute), false)) { string scriptName = attr.ScriptName; if (scripts.ContainsKey(scriptName)) { throw new InvalidOperationException( String.Format(CultureInfo.CurrentCulture, AtlasWeb.ScriptResourceHandler_DuplicateScriptResources, scriptName, assembly.GetName())); } scripts.Add(scriptName, true); } _duplicateScriptAttributesChecked[assembly] = true; } Pair cacheKey = new Pair (assembly, resourceName); ScriptResourceInfo resourceInfo = (ScriptResourceInfo)_scriptCache[cacheKey]; if (resourceInfo == null) { resourceInfo = ScriptResourceInfo.Empty; object[] attrs = assembly.GetCustomAttributes(typeof(ScriptResourceAttribute), false); // First look for a script resource attribute with that name for (int i = 0; i < attrs.Length; i++) { ScriptResourceAttribute sra = (ScriptResourceAttribute)attrs[i]; if (String.Equals(sra.ScriptName, resourceName, StringComparison.Ordinal)) { resourceInfo = new ScriptResourceInfo(sra); break; } } // Look for a web resource with that name, to get additional info if any attrs = assembly.GetCustomAttributes(typeof(WebResourceAttribute), false); for (int i = 0; i < attrs.Length; i++) { WebResourceAttribute wra = (WebResourceAttribute)attrs[i]; if (String.Equals(wra.WebResource, resourceName, StringComparison.Ordinal)) { if (resourceInfo == ScriptResourceInfo.Empty) { resourceInfo = new ScriptResourceInfo(); resourceInfo.ScriptName = resourceName; } resourceInfo.ContentType = wra.ContentType; resourceInfo.PerformSubstitution = wra.PerformSubstitution; break; } } resourceInfo.IsDebug = resourceName.EndsWith(".debug.js", StringComparison.OrdinalIgnoreCase); // Cache the results so we don't have to do this again _scriptCache[cacheKey] = resourceInfo; } return resourceInfo; } } } // 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; using System.Collections.Generic; using System.Globalization; using System.Reflection; using System.Text; using System.Web.Resources; using System.Web.Util; internal class ScriptResourceInfo { private string _contentType; private bool _performSubstitution; private string _scriptName; private string _scriptResourceName; private string _typeName; private bool _isDebug; private static readonly IDictionary _scriptCache = Hashtable.Synchronized(new Hashtable()); private static readonly IDictionary _duplicateScriptAttributesChecked = Hashtable.Synchronized(new Hashtable()); public static readonly ScriptResourceInfo Empty = new ScriptResourceInfo(); private ScriptResourceInfo() { } public ScriptResourceInfo(ScriptResourceAttribute attr) : this() { _scriptName = attr.ScriptName; _scriptResourceName = attr.ScriptResourceName; _typeName = attr.TypeName; } public string ContentType { get { return _contentType; } set { _contentType = value; } } public bool IsDebug { get { return _isDebug; } set { _isDebug = value; } } public bool PerformSubstitution { get { return _performSubstitution; } set { _performSubstitution = value; } } public string ScriptName { get { return _scriptName; } set { _scriptName = value; } } public string ScriptResourceName { get { return _scriptResourceName; } } public string TypeName { get { return _typeName; } } public static ScriptResourceInfo GetInstance(Assembly assembly, string resourceName) { // The first time this API is called, check for attributes that point to the same script if (!_duplicateScriptAttributesChecked.Contains(assembly)) { Dictionaryscripts = new Dictionary (); foreach (ScriptResourceAttribute attr in assembly.GetCustomAttributes(typeof(ScriptResourceAttribute), false)) { string scriptName = attr.ScriptName; if (scripts.ContainsKey(scriptName)) { throw new InvalidOperationException( String.Format(CultureInfo.CurrentCulture, AtlasWeb.ScriptResourceHandler_DuplicateScriptResources, scriptName, assembly.GetName())); } scripts.Add(scriptName, true); } _duplicateScriptAttributesChecked[assembly] = true; } Pair cacheKey = new Pair (assembly, resourceName); ScriptResourceInfo resourceInfo = (ScriptResourceInfo)_scriptCache[cacheKey]; if (resourceInfo == null) { resourceInfo = ScriptResourceInfo.Empty; object[] attrs = assembly.GetCustomAttributes(typeof(ScriptResourceAttribute), false); // First look for a script resource attribute with that name for (int i = 0; i < attrs.Length; i++) { ScriptResourceAttribute sra = (ScriptResourceAttribute)attrs[i]; if (String.Equals(sra.ScriptName, resourceName, StringComparison.Ordinal)) { resourceInfo = new ScriptResourceInfo(sra); break; } } // Look for a web resource with that name, to get additional info if any attrs = assembly.GetCustomAttributes(typeof(WebResourceAttribute), false); for (int i = 0; i < attrs.Length; i++) { WebResourceAttribute wra = (WebResourceAttribute)attrs[i]; if (String.Equals(wra.WebResource, resourceName, StringComparison.Ordinal)) { if (resourceInfo == ScriptResourceInfo.Empty) { resourceInfo = new ScriptResourceInfo(); resourceInfo.ScriptName = resourceName; } resourceInfo.ContentType = wra.ContentType; resourceInfo.PerformSubstitution = wra.PerformSubstitution; break; } } resourceInfo.IsDebug = resourceName.EndsWith(".debug.js", StringComparison.OrdinalIgnoreCase); // Cache the results so we don't have to do this again _scriptCache[cacheKey] = resourceInfo; } return resourceInfo; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataBoundControlAdapter.cs
- smtppermission.cs
- QueryAccessibilityHelpEvent.cs
- ToolStripScrollButton.cs
- DispatcherFrame.cs
- TakeQueryOptionExpression.cs
- PersianCalendar.cs
- IsolatedStorageException.cs
- FormClosedEvent.cs
- assertwrapper.cs
- AuthStoreRoleProvider.cs
- DoWorkEventArgs.cs
- HostedController.cs
- XmlJsonReader.cs
- TypeValidationEventArgs.cs
- DotNetATv1WindowsLogEntrySerializer.cs
- CustomAttributeBuilder.cs
- PositiveTimeSpanValidatorAttribute.cs
- TokenBasedSetEnumerator.cs
- TransformGroup.cs
- RSAOAEPKeyExchangeDeformatter.cs
- TextBoxLine.cs
- StrokeFIndices.cs
- ModelTreeEnumerator.cs
- activationcontext.cs
- RootDesignerSerializerAttribute.cs
- RecognitionResult.cs
- Visual3DCollection.cs
- XmlText.cs
- MD5.cs
- XPathNode.cs
- MemberProjectionIndex.cs
- CompModSwitches.cs
- GridLength.cs
- WebZone.cs
- AuthenticationServiceManager.cs
- DiscoveryDocumentLinksPattern.cs
- NativeWindow.cs
- HttpModuleCollection.cs
- BufferedMessageData.cs
- Int64.cs
- DataTablePropertyDescriptor.cs
- DynamicValidator.cs
- SignatureDescription.cs
- ExternalDataExchangeClient.cs
- BinaryExpressionHelper.cs
- HwndSourceParameters.cs
- AVElementHelper.cs
- TypeResolvingOptionsAttribute.cs
- DesignerDataParameter.cs
- TemplateBindingExpressionConverter.cs
- TabControlCancelEvent.cs
- ConnectionManagementElement.cs
- ScaleTransform3D.cs
- SettingsAttributeDictionary.cs
- DataBoundControlAdapter.cs
- ConsoleTraceListener.cs
- CorruptingExceptionCommon.cs
- ServiceBusyException.cs
- UnsafeNativeMethods.cs
- FixUpCollection.cs
- CollectionsUtil.cs
- CollectionBuilder.cs
- RealizationDrawingContextWalker.cs
- InfoCardRSAOAEPKeyExchangeFormatter.cs
- DesigntimeLicenseContext.cs
- ProfessionalColors.cs
- LinkLabelLinkClickedEvent.cs
- QueryPageSettingsEventArgs.cs
- TemplateApplicationHelper.cs
- ListParaClient.cs
- EntityDataSourceColumn.cs
- SqlReferenceCollection.cs
- MD5HashHelper.cs
- HttpApplication.cs
- DBBindings.cs
- SamlConditions.cs
- OperationAbortedException.cs
- DependencySource.cs
- KeyFrames.cs
- ADRoleFactoryConfiguration.cs
- oledbmetadatacollectionnames.cs
- HandlerWithFactory.cs
- PropertyGridEditorPart.cs
- ProfileInfo.cs
- KnownTypesHelper.cs
- TemplateBindingExtensionConverter.cs
- Rect3DConverter.cs
- ConfigurationFileMap.cs
- InfoCardConstants.cs
- HandlerBase.cs
- CompilerGlobalScopeAttribute.cs
- NotCondition.cs
- DeclaredTypeValidatorAttribute.cs
- TableLayoutStyle.cs
- TagPrefixCollection.cs
- Pen.cs
- DesignerActionHeaderItem.cs
- ByteAnimationBase.cs
- DockAndAnchorLayout.cs