Code:
/ FX-1434 / FX-1434 / 1.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
- Function.cs
- NCryptSafeHandles.cs
- Span.cs
- TTSVoice.cs
- FileUpload.cs
- panel.cs
- RegistrationContext.cs
- SqlDataAdapter.cs
- TemplateBindingExpression.cs
- MissingMemberException.cs
- SchemaNotation.cs
- Win32SafeHandles.cs
- XmlAttributeCollection.cs
- Freezable.cs
- wmiprovider.cs
- CryptoHandle.cs
- ControlTemplate.cs
- UserUseLicenseDictionaryLoader.cs
- CachedCompositeFamily.cs
- ResourceExpression.cs
- DocumentCollection.cs
- SerializationEventsCache.cs
- PointLight.cs
- AttributeCollection.cs
- CqlLexer.cs
- BindingContext.cs
- DefaultValueAttribute.cs
- UTF8Encoding.cs
- SafeProcessHandle.cs
- ErrorFormatterPage.cs
- SessionStateModule.cs
- ScrollableControlDesigner.cs
- ZipIOExtraFieldPaddingElement.cs
- WsatConfiguration.cs
- MaterializeFromAtom.cs
- safex509handles.cs
- PreDigestedSignedInfo.cs
- ViewStateModeByIdAttribute.cs
- EnterpriseServicesHelper.cs
- Image.cs
- EventSinkHelperWriter.cs
- IgnoreSectionHandler.cs
- Int16AnimationBase.cs
- SqlWriter.cs
- SafeRightsManagementSessionHandle.cs
- FormParameter.cs
- SimpleApplicationHost.cs
- PolicyManager.cs
- ConfigXmlCDataSection.cs
- AssociationTypeEmitter.cs
- StrokeCollectionDefaultValueFactory.cs
- FactoryId.cs
- DependencyPropertyDescriptor.cs
- ValidationSummary.cs
- Baml2006ReaderFrame.cs
- GenericXmlSecurityToken.cs
- RegexNode.cs
- StreamAsIStream.cs
- WebPartChrome.cs
- WebPartEditorApplyVerb.cs
- DesignerGenericWebPart.cs
- DataServiceExpressionVisitor.cs
- PrincipalPermission.cs
- ReflectionTypeLoadException.cs
- PrintController.cs
- CombinedTcpChannel.cs
- ConstraintConverter.cs
- KnownColorTable.cs
- RunWorkerCompletedEventArgs.cs
- XamlTemplateSerializer.cs
- _ProxyChain.cs
- State.cs
- EmptyEnumerator.cs
- XamlNamespaceHelper.cs
- SerializerDescriptor.cs
- Parsers.cs
- IteratorAsyncResult.cs
- Label.cs
- Literal.cs
- Span.cs
- WinInetCache.cs
- FastPropertyAccessor.cs
- RegistryPermission.cs
- DataServiceRequestException.cs
- RangeValuePattern.cs
- WeakHashtable.cs
- SapiAttributeParser.cs
- OpenFileDialog.cs
- Stroke2.cs
- Vector3DIndependentAnimationStorage.cs
- Grant.cs
- ProcessModelSection.cs
- FormViewDeletedEventArgs.cs
- SqlColumnizer.cs
- CollectionConverter.cs
- ArgumentOutOfRangeException.cs
- wgx_commands.cs
- GridViewAutoFormat.cs
- Attributes.cs
- URL.cs