Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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; } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PackageRelationshipCollection.cs
- Compiler.cs
- RawUIStateInputReport.cs
- RemoteCryptoTokenProvider.cs
- CodeGen.cs
- ValidationResult.cs
- SerialStream.cs
- AdCreatedEventArgs.cs
- TextTreePropertyUndoUnit.cs
- MaskedTextBoxTextEditorDropDown.cs
- RelationshipEnd.cs
- KeySplineConverter.cs
- RowCache.cs
- ConnectionStringsExpressionBuilder.cs
- DataGridRelationshipRow.cs
- JsonUriDataContract.cs
- WrapPanel.cs
- XmlCompatibilityReader.cs
- NavigationEventArgs.cs
- NullRuntimeConfig.cs
- CatalogPartCollection.cs
- ClrPerspective.cs
- InputLanguageCollection.cs
- Util.cs
- ResourceExpression.cs
- DataListItemCollection.cs
- RequestStatusBarUpdateEventArgs.cs
- UriSection.cs
- Internal.cs
- DateRangeEvent.cs
- LoginName.cs
- GroupStyle.cs
- DeferredReference.cs
- TypeDescriptor.cs
- EventSinkActivity.cs
- StructuredTypeEmitter.cs
- ComponentManagerBroker.cs
- AlternateViewCollection.cs
- PanelDesigner.cs
- COM2ICategorizePropertiesHandler.cs
- IndependentlyAnimatedPropertyMetadata.cs
- BindingContext.cs
- ParameterBuilder.cs
- ImageMap.cs
- GeneralTransform2DTo3D.cs
- ClientSession.cs
- PersonalizationDictionary.cs
- EasingKeyFrames.cs
- TypeNameConverter.cs
- LinqDataSource.cs
- DocumentSchemaValidator.cs
- XmlComplianceUtil.cs
- Themes.cs
- AutomationPropertyInfo.cs
- ReliableDuplexSessionChannel.cs
- ConfigXmlElement.cs
- Focus.cs
- ReadOnlyNameValueCollection.cs
- PathFigureCollection.cs
- safemediahandle.cs
- VScrollProperties.cs
- ProxyWebPart.cs
- SpanIndex.cs
- ValueTypeFixupInfo.cs
- BinaryNode.cs
- InkCanvasAutomationPeer.cs
- StandardOleMarshalObject.cs
- PropertyCollection.cs
- Module.cs
- CngKeyBlobFormat.cs
- CompiledQueryCacheKey.cs
- ProviderMetadataCachedInformation.cs
- EllipseGeometry.cs
- DrawListViewSubItemEventArgs.cs
- WebPartEditVerb.cs
- DataGridLinkButton.cs
- DataControlField.cs
- ProviderMetadata.cs
- LinqDataSourceInsertEventArgs.cs
- GcSettings.cs
- SiteMapNodeItemEventArgs.cs
- UserControlBuildProvider.cs
- AppendHelper.cs
- ObjectSelectorEditor.cs
- WebServiceAttribute.cs
- XmlCharType.cs
- SoapIgnoreAttribute.cs
- DocumentViewerConstants.cs
- Context.cs
- BaseDataList.cs
- ZoomPercentageConverter.cs
- VisemeEventArgs.cs
- ScriptReferenceEventArgs.cs
- FacetEnabledSchemaElement.cs
- WebReferencesBuildProvider.cs
- XmlSchemaValidator.cs
- DataListDesigner.cs
- PointF.cs
- DictationGrammar.cs
- ReadOnlyMetadataCollection.cs