Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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;
}
}
}
// 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;
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;
}
}
}
// 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
- SubclassTypeValidator.cs
- X509UI.cs
- Atom10FeedFormatter.cs
- PathSegment.cs
- SelfIssuedAuthProofToken.cs
- DetailsViewRowCollection.cs
- DSASignatureFormatter.cs
- httpserverutility.cs
- DataSourceXmlElementAttribute.cs
- smtpconnection.cs
- SelectionList.cs
- XomlDesignerLoader.cs
- CodeIterationStatement.cs
- OdbcConnectionPoolProviderInfo.cs
- IMembershipProvider.cs
- ThrowHelper.cs
- ViewSimplifier.cs
- DefaultCommandExtensionCallback.cs
- DataRowIndexBuffer.cs
- Baml6ConstructorInfo.cs
- BamlTreeUpdater.cs
- PassportPrincipal.cs
- ControlValuePropertyAttribute.cs
- TransformerConfigurationWizardBase.cs
- GenericWebPart.cs
- DoubleKeyFrameCollection.cs
- FixedLineResult.cs
- HttpHandlerActionCollection.cs
- MetaColumn.cs
- EnumDataContract.cs
- ToolStripDropDownClosedEventArgs.cs
- KeyGestureConverter.cs
- DoubleLink.cs
- ReadWriteObjectLock.cs
- ScriptReference.cs
- PeerReferralPolicy.cs
- EncoderParameters.cs
- ReadOnlyNameValueCollection.cs
- OdbcStatementHandle.cs
- TableLayoutPanelCellPosition.cs
- DeflateEmulationStream.cs
- TextFormatter.cs
- GraphicsPath.cs
- SmtpCommands.cs
- ExceptionNotification.cs
- InstanceData.cs
- Property.cs
- IpcClientChannel.cs
- ExpandCollapseProviderWrapper.cs
- CorrelationToken.cs
- SerializationSectionGroup.cs
- DataServiceExpressionVisitor.cs
- ActivityPropertyReference.cs
- LinkAreaEditor.cs
- UnhandledExceptionEventArgs.cs
- _NegoState.cs
- NativeMethods.cs
- SignedXml.cs
- ResourceReferenceExpression.cs
- DataControlButton.cs
- HwndSourceKeyboardInputSite.cs
- updateconfighost.cs
- PauseStoryboard.cs
- HwndProxyElementProvider.cs
- ValueTypeFixupInfo.cs
- Rethrow.cs
- ResourceDefaultValueAttribute.cs
- QilGeneratorEnv.cs
- SerializationException.cs
- XmlCDATASection.cs
- CodeCatchClauseCollection.cs
- TextServicesHost.cs
- DesignerOptionService.cs
- AppAction.cs
- XsdDuration.cs
- CredentialSelector.cs
- CompiledRegexRunnerFactory.cs
- AttributeCollection.cs
- IsolatedStorageFile.cs
- SemanticBasicElement.cs
- SymmetricCryptoHandle.cs
- DescendentsWalker.cs
- ObservableCollection.cs
- SqlDataAdapter.cs
- AnnotationHighlightLayer.cs
- SpeechUI.cs
- SecurityException.cs
- OptimizedTemplateContent.cs
- ConfigsHelper.cs
- SystemResourceKey.cs
- ConfigurationStrings.cs
- Hash.cs
- TokenBasedSet.cs
- BufferedGraphicsContext.cs
- FormsAuthenticationConfiguration.cs
- AsymmetricKeyExchangeDeformatter.cs
- CommandManager.cs
- ObjectSet.cs
- FontCacheLogic.cs
- ComAdminInterfaces.cs