Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Extensions / UI / TargetControlTypeCache.cs / 1305376 / 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
- WebPartTransformerAttribute.cs
- CodeArrayIndexerExpression.cs
- Predicate.cs
- CollectionContainer.cs
- HttpProfileGroupBase.cs
- PropertyMapper.cs
- FreezableDefaultValueFactory.cs
- ServiceNameElement.cs
- ColorContext.cs
- Range.cs
- XmlSerializer.cs
- WarningException.cs
- TemplateManager.cs
- UpDownEvent.cs
- CompositeKey.cs
- _AutoWebProxyScriptWrapper.cs
- XmlBindingWorker.cs
- TargetConverter.cs
- FontFaceLayoutInfo.cs
- FlowNode.cs
- DictionaryKeyPropertyAttribute.cs
- LinkClickEvent.cs
- Executor.cs
- CompiledAction.cs
- ListViewTableRow.cs
- VectorAnimation.cs
- ColumnHeaderCollectionEditor.cs
- ProcessModelSection.cs
- AncillaryOps.cs
- PerformanceCounterPermission.cs
- NamedObject.cs
- OutKeywords.cs
- XmlSchemaNotation.cs
- HttpListenerResponse.cs
- CurrentChangedEventManager.cs
- SortedList.cs
- AssemblyAttributesGoHere.cs
- diagnosticsswitches.cs
- AngleUtil.cs
- ChannelToken.cs
- UnsafeNativeMethods.cs
- SqlProviderServices.cs
- DataSourceProvider.cs
- AnnotationComponentManager.cs
- FontDifferentiator.cs
- TypeForwardedToAttribute.cs
- ApplicationSecurityManager.cs
- XmlTextEncoder.cs
- TextStore.cs
- DataGridViewToolTip.cs
- LingerOption.cs
- DetailsViewInsertEventArgs.cs
- Frame.cs
- Matrix.cs
- XhtmlBasicTextViewAdapter.cs
- UnhandledExceptionEventArgs.cs
- RotateTransform3D.cs
- OracleCommand.cs
- ItemContainerProviderWrapper.cs
- Delegate.cs
- EndpointConfigContainer.cs
- BitmapEffectDrawingContextState.cs
- XmlSchemaSimpleTypeUnion.cs
- XsltException.cs
- Base64Encoder.cs
- ResourcePermissionBase.cs
- MenuItem.cs
- WebPartMinimizeVerb.cs
- RectangleHotSpot.cs
- ClientConfigPaths.cs
- SafeEventLogWriteHandle.cs
- AutoSizeComboBox.cs
- StylusCollection.cs
- AsymmetricSignatureDeformatter.cs
- WindowsAltTab.cs
- RIPEMD160.cs
- LinqDataSourceUpdateEventArgs.cs
- MissingMethodException.cs
- ProfilePropertyNameValidator.cs
- ErrorTableItemStyle.cs
- DbCommandDefinition.cs
- InputBinding.cs
- RemoveFromCollection.cs
- securitymgrsite.cs
- EntityParameter.cs
- TextRunCacheImp.cs
- ToolBarPanel.cs
- SHA1Cng.cs
- Substitution.cs
- CorePropertiesFilter.cs
- RemotingAttributes.cs
- XmlSchemaInfo.cs
- RegexTypeEditor.cs
- UndoEngine.cs
- VectorAnimation.cs
- Propagator.ExtentPlaceholderCreator.cs
- FixedFlowMap.cs
- WindowsSecurityToken.cs
- TransformedBitmap.cs
- DropDownList.cs