Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
![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
- Debug.cs
- CodeParameterDeclarationExpressionCollection.cs
- PersonalizationProvider.cs
- ContainerVisual.cs
- MiniConstructorInfo.cs
- TagPrefixInfo.cs
- JoinElimination.cs
- SqlCrossApplyToCrossJoin.cs
- SynchronizationHandlesCodeDomSerializer.cs
- ITextView.cs
- AffineTransform3D.cs
- TextEditorCharacters.cs
- ValidateNames.cs
- QueueProcessor.cs
- DataTableMappingCollection.cs
- TdsParserSessionPool.cs
- PropertyValidationContext.cs
- MenuDesigner.cs
- HotSpotCollectionEditor.cs
- SessionStateUtil.cs
- IImplicitResourceProvider.cs
- PointConverter.cs
- RuntimeConfig.cs
- Pair.cs
- DbProviderFactory.cs
- MeshGeometry3D.cs
- Pen.cs
- XmlSequenceWriter.cs
- ModuleElement.cs
- EntityTypeBase.cs
- ZipIOBlockManager.cs
- InstanceDataCollection.cs
- EnglishPluralizationService.cs
- InputScope.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- FunctionImportElement.cs
- AuthenticatedStream.cs
- HttpModuleAction.cs
- HtmlButton.cs
- XmlSchemaCompilationSettings.cs
- PointAnimationClockResource.cs
- SelectionWordBreaker.cs
- ViewBox.cs
- ProfileService.cs
- LoadedEvent.cs
- TextParentUndoUnit.cs
- DashStyle.cs
- ClientCultureInfo.cs
- ProjectedSlot.cs
- DataGridViewButtonColumn.cs
- HandlerBase.cs
- GridViewCommandEventArgs.cs
- VisualBrush.cs
- ToolboxItemAttribute.cs
- ProfileModule.cs
- DockPattern.cs
- MailDefinition.cs
- BamlTreeNode.cs
- ReflectPropertyDescriptor.cs
- InputLanguageManager.cs
- ProgressBar.cs
- EventRouteFactory.cs
- MyContact.cs
- BooleanAnimationUsingKeyFrames.cs
- BookmarkInfo.cs
- WhitespaceRule.cs
- TypeListConverter.cs
- AttributeCollection.cs
- ContainerFilterService.cs
- HttpAsyncResult.cs
- EventLogTraceListener.cs
- EditorZoneDesigner.cs
- MenuItem.cs
- TokenizerHelper.cs
- OrderedDictionaryStateHelper.cs
- ReaderContextStackData.cs
- IndicShape.cs
- Exceptions.cs
- TextEditorSpelling.cs
- RepeatInfo.cs
- CorePropertiesFilter.cs
- DataColumnCollection.cs
- DefaultTextStoreTextComposition.cs
- WebControlAdapter.cs
- WebSysDefaultValueAttribute.cs
- DataGridViewCellCollection.cs
- ProtocolReflector.cs
- regiisutil.cs
- FontStyles.cs
- ScrollBar.cs
- CheckedListBox.cs
- messageonlyhwndwrapper.cs
- TemplateKeyConverter.cs
- ConnectorMovedEventArgs.cs
- InvalidOperationException.cs
- DbParameterHelper.cs
- ToolStripProgressBar.cs
- AllMembershipCondition.cs
- UnmanagedBitmapWrapper.cs
- FileFormatException.cs