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
- ListViewDesigner.cs
- FrameworkContextData.cs
- CacheMode.cs
- TransformProviderWrapper.cs
- PlanCompilerUtil.cs
- OracleString.cs
- DataRecordInternal.cs
- ConnectionDemuxer.cs
- InvariantComparer.cs
- DateTimeConverter.cs
- DeclarativeExpressionConditionDeclaration.cs
- odbcmetadatafactory.cs
- ObjectQuery.cs
- PeekCompletedEventArgs.cs
- Semaphore.cs
- WizardPanelChangingEventArgs.cs
- XmlEnumAttribute.cs
- SimpleMailWebEventProvider.cs
- DataGridColumnCollectionEditor.cs
- ApplicationId.cs
- SqlBulkCopyColumnMapping.cs
- BuildProviderInstallComponent.cs
- PrintDocument.cs
- ResXBuildProvider.cs
- OleDbEnumerator.cs
- View.cs
- DbResourceAllocator.cs
- AttachedPropertyMethodSelector.cs
- SoapClientProtocol.cs
- OpenTypeCommon.cs
- ToolStripContainerActionList.cs
- FragmentQueryKB.cs
- ObjectCacheHost.cs
- _ProxyChain.cs
- KeyProperty.cs
- OdbcEnvironmentHandle.cs
- ForEachAction.cs
- System.Data_BID.cs
- ManagementClass.cs
- CFStream.cs
- WebServiceClientProxyGenerator.cs
- HoistedLocals.cs
- MDIControlStrip.cs
- PerformanceCounterManager.cs
- SafeThemeHandle.cs
- TemplateBamlRecordReader.cs
- sapiproxy.cs
- EntityTransaction.cs
- AppearanceEditorPart.cs
- MemberBinding.cs
- AvTraceDetails.cs
- DetailsViewInsertEventArgs.cs
- _DisconnectOverlappedAsyncResult.cs
- xmlsaver.cs
- Math.cs
- LogSwitch.cs
- PostBackOptions.cs
- WorkflowServiceInstance.cs
- DmlSqlGenerator.cs
- ExpressionLexer.cs
- LateBoundBitmapDecoder.cs
- SHA256Managed.cs
- DataSetMappper.cs
- ConditionCollection.cs
- ProfileSettings.cs
- SmiEventStream.cs
- SoapServerProtocol.cs
- SQLGuidStorage.cs
- MethodBuilderInstantiation.cs
- IntPtr.cs
- MutableAssemblyCacheEntry.cs
- QueryMath.cs
- XPathNavigatorKeyComparer.cs
- ProviderSettingsCollection.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- Color.cs
- NotifyIcon.cs
- ListViewGroupItemCollection.cs
- mil_commands.cs
- AttributeData.cs
- AllMembershipCondition.cs
- DeviceContext2.cs
- QueryOutputWriter.cs
- SamlAction.cs
- UInt64.cs
- InputMethodStateTypeInfo.cs
- RightsManagementEncryptionTransform.cs
- DataGridComboBoxColumn.cs
- AdornedElementPlaceholder.cs
- UnsafeMethods.cs
- InvalidAsynchronousStateException.cs
- ObjectListCommandsPage.cs
- Queue.cs
- SessionStateModule.cs
- Padding.cs
- ProviderConnectionPoint.cs
- ToolBarOverflowPanel.cs
- DesignerActionPanel.cs
- LinearKeyFrames.cs
- MeshGeometry3D.cs