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 / 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
- FileNotFoundException.cs
- EntityAdapter.cs
- RuntimeConfig.cs
- RuleSetDialog.cs
- ManipulationStartedEventArgs.cs
- PolicyLevel.cs
- DocumentNUp.cs
- ObjectManager.cs
- GlobalAllocSafeHandle.cs
- TemplateInstanceAttribute.cs
- XsltContext.cs
- SequentialActivityDesigner.cs
- PreProcessInputEventArgs.cs
- EntityProviderFactory.cs
- BuildProvider.cs
- Ipv6Element.cs
- IsolatedStorageFileStream.cs
- ContentElement.cs
- DbDeleteCommandTree.cs
- TabControl.cs
- COSERVERINFO.cs
- MetabaseServerConfig.cs
- XmlDesigner.cs
- MissingMemberException.cs
- DesignerSerializationVisibilityAttribute.cs
- BehaviorEditorPart.cs
- WindowsTokenRoleProvider.cs
- ServiceRouteHandler.cs
- MissingMethodException.cs
- CloseCollectionAsyncResult.cs
- WebPartEventArgs.cs
- WebPartsPersonalizationAuthorization.cs
- DataGridViewRowPostPaintEventArgs.cs
- XmlByteStreamWriter.cs
- FileNotFoundException.cs
- FormsAuthenticationTicket.cs
- IItemProperties.cs
- NotCondition.cs
- XomlCompilerError.cs
- SerializationAttributes.cs
- WorkflowDefinitionDispenser.cs
- SemaphoreFullException.cs
- PathFigure.cs
- FileDialog_Vista_Interop.cs
- CodeTypeReferenceCollection.cs
- NativeMethods.cs
- DataFormats.cs
- MergeLocalizationDirectives.cs
- PropertyValueChangedEvent.cs
- StructuredTypeEmitter.cs
- StickyNoteAnnotations.cs
- PageCatalogPart.cs
- Clipboard.cs
- ObjectQuery.cs
- CounterCreationDataConverter.cs
- TransformProviderWrapper.cs
- TableCellAutomationPeer.cs
- EditBehavior.cs
- StringUtil.cs
- DocumentViewer.cs
- Opcode.cs
- CreateUserWizard.cs
- GridViewDeletedEventArgs.cs
- ServiceAuthorizationManager.cs
- FixedSOMTableRow.cs
- WebPartsPersonalizationAuthorization.cs
- MemoryMappedViewStream.cs
- InternalCache.cs
- BatchParser.cs
- WebBrowser.cs
- PermissionRequestEvidence.cs
- HeaderedContentControl.cs
- PathTooLongException.cs
- ProfessionalColors.cs
- PropertyPathConverter.cs
- Style.cs
- ParameterToken.cs
- Scene3D.cs
- DeploymentSection.cs
- HuffmanTree.cs
- FocusManager.cs
- MulticastDelegate.cs
- BitHelper.cs
- StringSorter.cs
- ModifierKeysConverter.cs
- MobileDeviceCapabilitiesSectionHandler.cs
- TcpTransportSecurityElement.cs
- WebPartVerb.cs
- TreeNodeBindingDepthConverter.cs
- SafeNativeMethods.cs
- HostingEnvironmentException.cs
- ConfigUtil.cs
- TextEditorTyping.cs
- WindowsAltTab.cs
- SafeCryptHandles.cs
- ToolStripTextBox.cs
- EntityKey.cs
- FileDetails.cs
- KeyProperty.cs
- StringDictionaryWithComparer.cs