Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Base / System / ComponentModel / PropertyFilterAttribute.cs / 1305600 / PropertyFilterAttribute.cs
namespace System.ComponentModel
{
using System;
using System.Diagnostics.CodeAnalysis;
///
/// This attribute is a "query" attribute. It is
/// an attribute that causes the type description provider
/// to narrow the scope of returned properties. It differs
/// from normal attributes in that it cannot actually be
/// placed on a class as metadata and that the filter mechanism
/// is code rather than static metadata.
///
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Method)]
public sealed class PropertyFilterAttribute : Attribute
{
//------------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
///
/// Creates a new attribute.
///
public PropertyFilterAttribute(PropertyFilterOptions filter)
{
_filter = filter;
}
#endregion Constructors
//-----------------------------------------------------
//
// Public Methods
//
//-----------------------------------------------------
#region Public Methods
///
/// Override of Object.Equals that returns true if the filters
/// contained in both attributes match.
///
public override bool Equals(object value)
{
PropertyFilterAttribute a = value as PropertyFilterAttribute;
if (a != null && a._filter.Equals(_filter))
{
return true;
}
return false;
}
///
/// Override of Object.GetHashCode.
///
public override int GetHashCode()
{
return _filter.GetHashCode();
}
///
/// Match determines if one attribute "matches" another. For
/// attributes that store flags, a match may be different from
/// an equals. For example, a filter of SetValid matches a
/// filter of All, because All is a merge of all filter values.
///
public override bool Match(object value)
{
PropertyFilterAttribute a = value as PropertyFilterAttribute;
if (a == null) return false;
return ((_filter & a._filter) == _filter);
}
#endregion Public Methods
//------------------------------------------------------
//
// Public Operators
//
//-----------------------------------------------------
//------------------------------------------------------
//
// Public Properties
//
//------------------------------------------------------
#region Public Properties
///
/// The filter value passed into the constructor.
///
public PropertyFilterOptions Filter
{
get { return _filter; }
}
#endregion Public Properties
//-----------------------------------------------------
//
// Public Events
//
//------------------------------------------------------
//-----------------------------------------------------
//
// Public Fields
//
//-----------------------------------------------------
#region Public Fields
///
/// Attributes may declare a Default field that indicates
/// what should be done if the attribute is not defined.
/// Our default is to return all properties.
///
[SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes")]
public static readonly PropertyFilterAttribute Default = new PropertyFilterAttribute(PropertyFilterOptions.All);
#endregion Public Fields
//-----------------------------------------------------
//
// Private Fields
//
//------------------------------------------------------
#region Private Fields
private PropertyFilterOptions _filter;
#endregion Private Fields
}
}
// 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
- SingleSelectRootGridEntry.cs
- MessageQueueException.cs
- HandlerFactoryCache.cs
- InstanceNotReadyException.cs
- HttpRequestBase.cs
- EventMetadata.cs
- DynamicEntity.cs
- DataFormats.cs
- AccessedThroughPropertyAttribute.cs
- LogFlushAsyncResult.cs
- ExceptionDetail.cs
- SecurityException.cs
- ColorComboBox.cs
- MemberRelationshipService.cs
- BaseCodePageEncoding.cs
- CommandConverter.cs
- Vector3DAnimationBase.cs
- Crc32.cs
- RefExpr.cs
- JpegBitmapDecoder.cs
- GridViewCancelEditEventArgs.cs
- DataSourceCache.cs
- Freezable.cs
- MaskedTextBoxDesigner.cs
- BufferedReadStream.cs
- sqlnorm.cs
- AdobeCFFWrapper.cs
- BufferedGraphics.cs
- SimpleBitVector32.cs
- WebServiceTypeData.cs
- ReflectionHelper.cs
- DetailsViewInsertEventArgs.cs
- EventData.cs
- ClientSideProviderDescription.cs
- sqlstateclientmanager.cs
- ToolStripOverflow.cs
- BindableAttribute.cs
- ImplicitInputBrush.cs
- BuildResultCache.cs
- ListDictionaryInternal.cs
- SymmetricAlgorithm.cs
- WorkflowTransactionService.cs
- DataFormats.cs
- GridViewUpdateEventArgs.cs
- Array.cs
- HuffModule.cs
- TextOutput.cs
- PointLight.cs
- Privilege.cs
- XNodeNavigator.cs
- TargetException.cs
- XamlReaderHelper.cs
- WebPartDescription.cs
- StyleCollection.cs
- UIElement3DAutomationPeer.cs
- ErrorWrapper.cs
- ConfigXmlSignificantWhitespace.cs
- TemplateKey.cs
- FastEncoderWindow.cs
- PageVisual.cs
- HttpResponseHeader.cs
- TimerElapsedEvenArgs.cs
- SystemIPAddressInformation.cs
- IncrementalHitTester.cs
- Marshal.cs
- Color.cs
- XPathPatternParser.cs
- SubpageParagraph.cs
- DataAccessor.cs
- SafeNativeMethods.cs
- BindUriHelper.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- CroppedBitmap.cs
- GridViewPageEventArgs.cs
- DataBindingValueUIHandler.cs
- SingleResultAttribute.cs
- ServiceReflector.cs
- CommandBindingCollection.cs
- DirectoryRedirect.cs
- StrokeNodeData.cs
- NavigationPropertyEmitter.cs
- EntityDataSourceReferenceGroup.cs
- RestrictedTransactionalPackage.cs
- Comparer.cs
- ExtendedPropertyCollection.cs
- FileStream.cs
- DATA_BLOB.cs
- LocatorPart.cs
- dbdatarecord.cs
- RequestResponse.cs
- DataContractSerializerFaultFormatter.cs
- WebPartConnectionsCancelEventArgs.cs
- BaseTemplateBuildProvider.cs
- TagNameToTypeMapper.cs
- XmlSchemaType.cs
- CryptoStream.cs
- ScriptingJsonSerializationSection.cs
- WrapPanel.cs
- UnmanagedMemoryStreamWrapper.cs
- SqlCacheDependencyDatabaseCollection.cs