Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Base / System / ComponentModel / PropertyFilterAttribute.cs / 1 / 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. 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
- TimelineGroup.cs
- FloatUtil.cs
- SafeSecurityHandles.cs
- DataColumnPropertyDescriptor.cs
- TextChange.cs
- TakeQueryOptionExpression.cs
- SystemNetworkInterface.cs
- SerializationObjectManager.cs
- hresults.cs
- Pair.cs
- ColumnHeaderCollectionEditor.cs
- PointIndependentAnimationStorage.cs
- DbConnectionPoolCounters.cs
- PerformanceCounter.cs
- ObjectDataSourceMethodEventArgs.cs
- UserInitiatedRoutedEventPermission.cs
- ColorConverter.cs
- EmptyEnumerator.cs
- XmlDataCollection.cs
- CssStyleCollection.cs
- RemotingServices.cs
- DefaultPropertyAttribute.cs
- FormsAuthenticationUserCollection.cs
- SchemaEntity.cs
- RoutedEventArgs.cs
- DesignerTextBoxAdapter.cs
- PersistenceTypeAttribute.cs
- ModelUIElement3D.cs
- XmlNodeComparer.cs
- RegisteredScript.cs
- SingleKeyFrameCollection.cs
- XamlParser.cs
- XmlUrlResolver.cs
- WorkflowRuntimeElement.cs
- ObjectListCommandEventArgs.cs
- CellConstantDomain.cs
- CodeExpressionCollection.cs
- XdrBuilder.cs
- CodeCompiler.cs
- EventLogger.cs
- CommandPlan.cs
- SystemDropShadowChrome.cs
- CollectionViewSource.cs
- WebServiceEnumData.cs
- RectValueSerializer.cs
- DataControlCommands.cs
- TablePatternIdentifiers.cs
- PointConverter.cs
- PlainXmlSerializer.cs
- WebPartCatalogCloseVerb.cs
- FormsAuthenticationCredentials.cs
- SequenceFullException.cs
- MouseEventArgs.cs
- CryptoKeySecurity.cs
- ObjectSpanRewriter.cs
- DataColumnPropertyDescriptor.cs
- StackOverflowException.cs
- HostedAspNetEnvironment.cs
- PagedControl.cs
- XmlSchemas.cs
- MultiPropertyDescriptorGridEntry.cs
- DataGridViewRow.cs
- GreenMethods.cs
- WebConfigManager.cs
- CodeSubDirectory.cs
- figurelength.cs
- ActivityDesignerResources.cs
- SpeechDetectedEventArgs.cs
- DataGridHyperlinkColumn.cs
- DeclarationUpdate.cs
- ScriptingRoleServiceSection.cs
- Pair.cs
- SecurityUtils.cs
- ResXBuildProvider.cs
- HealthMonitoringSectionHelper.cs
- LambdaCompiler.Binary.cs
- RawTextInputReport.cs
- GiveFeedbackEvent.cs
- PropertyFilterAttribute.cs
- InternalCache.cs
- FixedDSBuilder.cs
- UiaCoreApi.cs
- XmlUtilWriter.cs
- XmlIncludeAttribute.cs
- ReflectionPermission.cs
- CollectionView.cs
- AutoResetEvent.cs
- MarkupExtensionReturnTypeAttribute.cs
- ElementMarkupObject.cs
- ButtonFieldBase.cs
- SymbolType.cs
- TextCompositionManager.cs
- DiscreteKeyFrames.cs
- CacheDict.cs
- XmlSchemaAnnotation.cs
- ChannelManager.cs
- MdiWindowListItemConverter.cs
- HealthMonitoringSection.cs
- Stylus.cs
- XMLUtil.cs