Code:
/ DotNET / DotNET / 8.0 / untmp / Orcas / RTM / ndp / fx / src / xsp / System / Web / Extensions / ui / ScriptResourceInfo.cs / 2 / 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(); public ScriptResourceInfo() { _contentType = "application/x-javascript"; } 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.
Link Menu
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WebBrowsableAttribute.cs
- InvalidCastException.cs
- WizardSideBarListControlItem.cs
- ColumnTypeConverter.cs
- UserControl.cs
- DesignerVerbCollection.cs
- IdentitySection.cs
- ClientRoleProvider.cs
- TypeUsageBuilder.cs
- IdentifierService.cs
- DrawingContextWalker.cs
- CFStream.cs
- RequestCachingSection.cs
- IImplicitResourceProvider.cs
- OdbcUtils.cs
- TableSectionStyle.cs
- TextBoxBase.cs
- StickyNoteContentControl.cs
- NavigationFailedEventArgs.cs
- XPathAncestorQuery.cs
- FloatUtil.cs
- DocumentXmlWriter.cs
- GifBitmapEncoder.cs
- precedingquery.cs
- InvalidOleVariantTypeException.cs
- Popup.cs
- BitmapEffectDrawing.cs
- MetadataArtifactLoaderCompositeResource.cs
- CollectionEditorDialog.cs
- ComNativeDescriptor.cs
- NullableBoolConverter.cs
- CheckoutException.cs
- DetailsViewInsertEventArgs.cs
- TransportContext.cs
- OutputBuffer.cs
- OrderedDictionaryStateHelper.cs
- CompilationSection.cs
- DetailsViewInsertEventArgs.cs
- RelationshipType.cs
- WorkItem.cs
- WebPartTracker.cs
- NamespaceMapping.cs
- RsaSecurityKey.cs
- ObjectViewEntityCollectionData.cs
- ShapeTypeface.cs
- CqlLexer.cs
- TableLayoutCellPaintEventArgs.cs
- EndpointBehaviorElement.cs
- SelectionEditor.cs
- XmlSchemaObjectTable.cs
- RoleGroup.cs
- DataBinding.cs
- TabItemWrapperAutomationPeer.cs
- DecoderFallbackWithFailureFlag.cs
- NumericUpDownAcceleration.cs
- MexHttpBindingElement.cs
- VirtualDirectoryMapping.cs
- OperationPerformanceCounters.cs
- DoWhile.cs
- SqlClientWrapperSmiStreamChars.cs
- FontEditor.cs
- ThemeableAttribute.cs
- EmbossBitmapEffect.cs
- InheritanceUI.cs
- SchemaMerger.cs
- CodeStatement.cs
- WebPartVerb.cs
- ToolTip.cs
- BaseCollection.cs
- FrameworkElement.cs
- NamedPipeDuplicateContext.cs
- SerializationInfoEnumerator.cs
- StateItem.cs
- MarkupCompiler.cs
- XmlSchemaObject.cs
- MouseCaptureWithinProperty.cs
- PropertyValueChangedEvent.cs
- MetafileHeaderWmf.cs
- AuthenticationManager.cs
- Pointer.cs
- PrinterUnitConvert.cs
- WebPartChrome.cs
- WebPartDisplayMode.cs
- QilStrConcat.cs
- CompositeFontParser.cs
- DeviceContext2.cs
- DataList.cs
- CriticalHandle.cs
- HttpConfigurationSystem.cs
- DataService.cs
- Application.cs
- SmtpReplyReader.cs
- PathSegmentCollection.cs
- QilExpression.cs
- DeflateStream.cs
- HostUtils.cs
- BaseTemplateCodeDomTreeGenerator.cs
- FlowchartDesigner.Helpers.cs
- DataGridColumnReorderingEventArgs.cs
- ImageIndexConverter.cs