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;
}
///
/// Indicates if the property is Filterable.
///
public bool Filterable {
get {
return _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
- SiteMapDataSource.cs
- DeploymentSectionCache.cs
- XmlCompatibilityReader.cs
- ClientSection.cs
- ConfigurationConverterBase.cs
- XmlAutoDetectWriter.cs
- RadialGradientBrush.cs
- ValidationHelper.cs
- MetadataArtifactLoaderCompositeResource.cs
- IndicCharClassifier.cs
- IssuedTokenParametersEndpointAddressElement.cs
- Operand.cs
- MimeMapping.cs
- AnonymousIdentificationSection.cs
- WebBrowserProgressChangedEventHandler.cs
- CommandPlan.cs
- ErrorHandler.cs
- IntegrationExceptionEventArgs.cs
- RegexParser.cs
- Debug.cs
- HttpEncoder.cs
- NetStream.cs
- SmiMetaData.cs
- GC.cs
- SourceChangedEventArgs.cs
- XmlWhitespace.cs
- SchemaTypeEmitter.cs
- BamlLocalizableResourceKey.cs
- XslVisitor.cs
- Subset.cs
- KeysConverter.cs
- UnsafeNativeMethodsPenimc.cs
- EntityDataSourceWizardForm.cs
- GridViewColumn.cs
- DocumentPageTextView.cs
- ImageAnimator.cs
- Dictionary.cs
- SuppressMessageAttribute.cs
- Token.cs
- unsafenativemethodsother.cs
- ExtendedPropertyDescriptor.cs
- BitmapEffectOutputConnector.cs
- VisualBrush.cs
- Wildcard.cs
- TableLayoutCellPaintEventArgs.cs
- XPathBinder.cs
- ToolStripItemRenderEventArgs.cs
- ADMembershipProvider.cs
- versioninfo.cs
- HtmlInputControl.cs
- CompilationLock.cs
- RelatedView.cs
- AuthenticationModulesSection.cs
- Font.cs
- WebConfigurationHostFileChange.cs
- Win32KeyboardDevice.cs
- CompilerGeneratedAttribute.cs
- WebConfigManager.cs
- ScaleTransform.cs
- ContentElement.cs
- WindowsGraphicsWrapper.cs
- QilLoop.cs
- StringDictionaryWithComparer.cs
- QueryContinueDragEvent.cs
- IndicFontClient.cs
- BackgroundFormatInfo.cs
- FormParameter.cs
- PropertyChangedEventManager.cs
- CacheDict.cs
- SqlConnectionHelper.cs
- XamlInt32CollectionSerializer.cs
- FolderBrowserDialog.cs
- SplitterCancelEvent.cs
- ModelPropertyImpl.cs
- WebFaultClientMessageInspector.cs
- ToolStripItemCollection.cs
- SplitterCancelEvent.cs
- ImpersonationContext.cs
- CreateUserErrorEventArgs.cs
- AssemblyFilter.cs
- CommandHelper.cs
- CryptoProvider.cs
- PackWebResponse.cs
- IsolatedStorageFileStream.cs
- CodeConditionStatement.cs
- TaskForm.cs
- SurrogateEncoder.cs
- HandlerBase.cs
- ToolBarPanel.cs
- DragEventArgs.cs
- WebPartManager.cs
- XMLUtil.cs
- WebPartCollection.cs
- SingleResultAttribute.cs
- Decimal.cs
- ReturnType.cs
- HtmlTextArea.cs
- Knowncolors.cs
- TemplatedMailWebEventProvider.cs
- UInt64.cs