Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / xsp / System / Web / Extensions / ui / TargetControlTypeCache.cs / 1 / TargetControlTypeCache.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI { using System; using System.Collections; // Cache TargetControlTypeAttributes to improve performance internal static class TargetControlTypeCache { // Maps Type (extender control) to Type[] (valid target control types) private static readonly Hashtable _targetControlTypeCache = Hashtable.Synchronized(new Hashtable()); public static Type[] GetTargetControlTypes(Type extenderControlType) { Type[] types = (Type[])_targetControlTypeCache[extenderControlType]; if (types == null) { types = GetTargetControlTypesInternal(extenderControlType); _targetControlTypeCache[extenderControlType] = types; } return types; } private static Type[] GetTargetControlTypesInternal(Type extenderControlType) { object[] attrs = extenderControlType.GetCustomAttributes(typeof(TargetControlTypeAttribute), true); Type[] types = new Type[attrs.Length]; for (int i = 0; i < attrs.Length; i++) { types[i] = ((TargetControlTypeAttribute)attrs[i]).TargetControlType; } return types; } } } // 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; // Cache TargetControlTypeAttributes to improve performance internal static class TargetControlTypeCache { // Maps Type (extender control) to Type[] (valid target control types) private static readonly Hashtable _targetControlTypeCache = Hashtable.Synchronized(new Hashtable()); public static Type[] GetTargetControlTypes(Type extenderControlType) { Type[] types = (Type[])_targetControlTypeCache[extenderControlType]; if (types == null) { types = GetTargetControlTypesInternal(extenderControlType); _targetControlTypeCache[extenderControlType] = types; } return types; } private static Type[] GetTargetControlTypesInternal(Type extenderControlType) { object[] attrs = extenderControlType.GetCustomAttributes(typeof(TargetControlTypeAttribute), true); Type[] types = new Type[attrs.Length]; for (int i = 0; i < attrs.Length; i++) { types[i] = ((TargetControlTypeAttribute)attrs[i]).TargetControlType; } return types; } } } // 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
- IndexedGlyphRun.cs
- SiteMapProvider.cs
- TypefaceMap.cs
- HtmlTableRowCollection.cs
- UiaCoreApi.cs
- StartFileNameEditor.cs
- _ChunkParse.cs
- ProfileSection.cs
- TextServicesCompartment.cs
- RuntimeWrappedException.cs
- BitmapScalingModeValidation.cs
- WinFormsSpinner.cs
- WCFModelStrings.Designer.cs
- MemberAssignment.cs
- EmptyReadOnlyDictionaryInternal.cs
- QilParameter.cs
- RTLAwareMessageBox.cs
- LifetimeServices.cs
- CssClassPropertyAttribute.cs
- MSAANativeProvider.cs
- CodeDOMProvider.cs
- AttributeAction.cs
- TraceHandler.cs
- LocalizedNameDescriptionPair.cs
- VisualTarget.cs
- TextServicesCompartment.cs
- ZoneLinkButton.cs
- FlowDocumentScrollViewer.cs
- DataTrigger.cs
- RadioButton.cs
- DataServiceQueryException.cs
- CodeRemoveEventStatement.cs
- ListItemViewAttribute.cs
- PropertyOverridesDialog.cs
- CacheEntry.cs
- ELinqQueryState.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- XPathNodeIterator.cs
- ConfigXmlElement.cs
- WindowProviderWrapper.cs
- ToolStripTemplateNode.cs
- WindowsTitleBar.cs
- QuotedPrintableStream.cs
- WebServiceFaultDesigner.cs
- WinFormsSpinner.cs
- SmtpClient.cs
- Rules.cs
- SimpleColumnProvider.cs
- PolicyValidationException.cs
- DataGridViewCellStateChangedEventArgs.cs
- SR.cs
- HttpRequestBase.cs
- TrackingProfileCache.cs
- NetMsmqBindingElement.cs
- Pointer.cs
- ClientBuildManagerCallback.cs
- ImageAttributes.cs
- PtsPage.cs
- TypeLibConverter.cs
- transactioncontext.cs
- SoapAttributeOverrides.cs
- SecurityUtils.cs
- DocumentXmlWriter.cs
- PolicyValidationException.cs
- TabControlDesigner.cs
- RichTextBox.cs
- Debug.cs
- TypedRowGenerator.cs
- CFGGrammar.cs
- DataService.cs
- DateTimeUtil.cs
- Effect.cs
- RegexCaptureCollection.cs
- ToolStripDropTargetManager.cs
- ProfileServiceManager.cs
- CodeMemberField.cs
- XmlProcessingInstruction.cs
- FrameSecurityDescriptor.cs
- validationstate.cs
- ServiceOperationParameter.cs
- XomlCompilerHelpers.cs
- TransportConfigurationTypeElementCollection.cs
- EmptyEnumerator.cs
- ConfigXmlComment.cs
- CodeParameterDeclarationExpression.cs
- ThicknessAnimationUsingKeyFrames.cs
- MetadataElement.cs
- DesignerProperties.cs
- GetPageCompletedEventArgs.cs
- AlgoModule.cs
- SecurityVersion.cs
- SQLInt16Storage.cs
- ListControlActionList.cs
- Char.cs
- UrlMappingsModule.cs
- NetCodeGroup.cs
- CompleteWizardStep.cs
- ValidationRule.cs
- AlphabetConverter.cs
- DrawToolTipEventArgs.cs