Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / xsp / System / Web / UI / FilterableAttribute.cs / 1 / FilterableAttribute.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* */ namespace System.Web.UI { using System; using System.Collections; using System.ComponentModel; using System.Security.Permissions; ////// [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AttributeUsage(AttributeTargets.Property | AttributeTargets.Class)] public sealed class FilterableAttribute : Attribute { ////// /// /// public static readonly FilterableAttribute Yes = new FilterableAttribute(true); ////// /// /// public static readonly FilterableAttribute No = new FilterableAttribute(false); ////// /// /// public static readonly FilterableAttribute Default = Yes; private bool _filterable = false; private static Hashtable _filterableTypes; static FilterableAttribute() { // Create a synchronized wrapper _filterableTypes = Hashtable.Synchronized(new Hashtable()); } ////// /// public FilterableAttribute(bool filterable) { _filterable = filterable; } ////// public bool Filterable { get { return _filterable; } } ///Indicates if the property is Filterable. ///public override bool Equals(object obj) { if (obj == this) { return true; } FilterableAttribute other = obj as FilterableAttribute; return (other != null) && (other.Filterable == _filterable); } /// public override int GetHashCode() { return _filterable.GetHashCode(); } /// public override bool IsDefaultAttribute() { return this.Equals(Default); } public static bool IsObjectFilterable(Object instance) { if (instance == null) throw new ArgumentNullException("instance"); return IsTypeFilterable(instance.GetType()); } public static bool IsPropertyFilterable(PropertyDescriptor propertyDescriptor) { FilterableAttribute filterableAttr = (FilterableAttribute)propertyDescriptor.Attributes[typeof(FilterableAttribute)]; if (filterableAttr != null) { return filterableAttr.Filterable; } return true; } public static bool IsTypeFilterable(Type type) { if (type == null) throw new ArgumentNullException("type"); object result = _filterableTypes[type]; if (result != null) { return (bool)result; } System.ComponentModel.AttributeCollection attrs = TypeDescriptor.GetAttributes(type); FilterableAttribute attr = (FilterableAttribute)attrs[typeof(FilterableAttribute)]; result = (attr != null) && attr.Filterable; _filterableTypes[type] = result; return (bool)result; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XPathNodeList.cs
- NestedContainer.cs
- TextSimpleMarkerProperties.cs
- CoTaskMemUnicodeSafeHandle.cs
- ObjectQuery_EntitySqlExtensions.cs
- FilterQuery.cs
- EntityDataSourceEntityTypeFilterItem.cs
- ProxySimple.cs
- Ray3DHitTestResult.cs
- WorkflowInstanceExtensionCollection.cs
- WsdlContractConversionContext.cs
- HtmlFormAdapter.cs
- OnOperation.cs
- webeventbuffer.cs
- ProcessHostMapPath.cs
- UnitControl.cs
- DbProviderFactories.cs
- SecurityRuntime.cs
- InputLanguageProfileNotifySink.cs
- Frame.cs
- DataErrorValidationRule.cs
- Condition.cs
- SEHException.cs
- RegistryPermission.cs
- SHA512.cs
- CellLabel.cs
- ListSortDescription.cs
- DbgUtil.cs
- WebCategoryAttribute.cs
- Base64WriteStateInfo.cs
- CompilationRelaxations.cs
- XamlSerializerUtil.cs
- StreamGeometry.cs
- DynamicRendererThreadManager.cs
- _ScatterGatherBuffers.cs
- WinCategoryAttribute.cs
- VersionPair.cs
- WindowsComboBox.cs
- GridViewColumnCollectionChangedEventArgs.cs
- ObservableCollection.cs
- TableColumn.cs
- ProcessStartInfo.cs
- StoragePropertyMapping.cs
- ToolStripTemplateNode.cs
- ViewStateException.cs
- JapaneseLunisolarCalendar.cs
- ConfigurationConverterBase.cs
- ConsumerConnectionPoint.cs
- WebPartMinimizeVerb.cs
- XmlUTF8TextReader.cs
- QueryStringParameter.cs
- SoapEnumAttribute.cs
- ToggleButton.cs
- RectAnimationUsingKeyFrames.cs
- ToolStripItemTextRenderEventArgs.cs
- ListViewItem.cs
- ConnectionPool.cs
- MbpInfo.cs
- RuleValidation.cs
- RsaSecurityToken.cs
- DummyDataSource.cs
- ListViewItem.cs
- ActiveXSite.cs
- InvalidateEvent.cs
- ADMembershipProvider.cs
- FreezableCollection.cs
- XamlStyleSerializer.cs
- TreeNodeClickEventArgs.cs
- MissingMemberException.cs
- DefaultParameterValueAttribute.cs
- ZipIOExtraField.cs
- LinearGradientBrush.cs
- SrgsElementFactoryCompiler.cs
- SecondaryIndex.cs
- WebControlsSection.cs
- ProtectedProviderSettings.cs
- WebPartCollection.cs
- ClientFormsIdentity.cs
- CompModSwitches.cs
- RegexMatch.cs
- SplitterEvent.cs
- TcpSocketManager.cs
- DetailsViewUpdatedEventArgs.cs
- SafeNativeMethods.cs
- DeviceSpecificDesigner.cs
- InvalidPropValue.cs
- ItemCollection.cs
- IgnoreFileBuildProvider.cs
- TraceListener.cs
- FamilyMapCollection.cs
- SoapProtocolReflector.cs
- XamlTypeWithExplicitNamespace.cs
- BaseDataBoundControl.cs
- TextDpi.cs
- MetabaseServerConfig.cs
- WorkflowLayouts.cs
- WorkflowTimerService.cs
- ipaddressinformationcollection.cs
- XmlCustomFormatter.cs
- ObjectItemCollection.cs