Code:
/ 4.0 / 4.0 / 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. 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
- XmlSchemaValidator.cs
- SettingsPropertyValue.cs
- Int16.cs
- XPathException.cs
- AutomationEvent.cs
- CapabilitiesRule.cs
- IndexerNameAttribute.cs
- Panel.cs
- DataTrigger.cs
- IteratorFilter.cs
- UnhandledExceptionEventArgs.cs
- EventPrivateKey.cs
- DataBoundControlHelper.cs
- ObfuscateAssemblyAttribute.cs
- JournalNavigationScope.cs
- XmlImplementation.cs
- XmlValueConverter.cs
- HtmlEncodedRawTextWriter.cs
- RandomNumberGenerator.cs
- GridViewCellAutomationPeer.cs
- thaishape.cs
- InvalidProgramException.cs
- WorkflowQueue.cs
- SafeNativeMethods.cs
- ClosureBinding.cs
- BamlLocalizableResource.cs
- TextTreeTextBlock.cs
- CompressedStack.cs
- BuildProviderUtils.cs
- BitVec.cs
- ConfigUtil.cs
- DependencyPropertyConverter.cs
- DataFormats.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- ContentTextAutomationPeer.cs
- TextLineBreak.cs
- ExtractedStateEntry.cs
- TextLineBreak.cs
- HttpWebRequestElement.cs
- AutoSizeComboBox.cs
- CodePageUtils.cs
- SqlClientWrapperSmiStream.cs
- activationcontext.cs
- DataGridCommandEventArgs.cs
- GlyphManager.cs
- TCEAdapterGenerator.cs
- DataService.cs
- HttpCapabilitiesSectionHandler.cs
- TaiwanCalendar.cs
- PathFigure.cs
- LabelEditEvent.cs
- SettingsBase.cs
- ToolStripContextMenu.cs
- EntitySetBase.cs
- TransactionValidationBehavior.cs
- ThreadAbortException.cs
- IntPtr.cs
- Point4DValueSerializer.cs
- GradientStopCollection.cs
- X509Certificate2.cs
- XDeferredAxisSource.cs
- TextAnchor.cs
- FontStyleConverter.cs
- RuleSettings.cs
- EditorPartChrome.cs
- SynchronizationContext.cs
- ServiceParser.cs
- EventSinkHelperWriter.cs
- BinaryNode.cs
- RoutedEventHandlerInfo.cs
- XmlSchemaCompilationSettings.cs
- ReadOnlyPermissionSet.cs
- NamedPipeTransportManager.cs
- TextTabProperties.cs
- XmlDictionary.cs
- ModuleBuilder.cs
- ApplicationDirectoryMembershipCondition.cs
- SuppressIldasmAttribute.cs
- GetPageCompletedEventArgs.cs
- AmbientValueAttribute.cs
- XmlName.cs
- ContextProperty.cs
- FileRegion.cs
- AnchoredBlock.cs
- DropSourceBehavior.cs
- Configuration.cs
- SQLDoubleStorage.cs
- DiscardableAttribute.cs
- SqlExpander.cs
- DataServiceContext.cs
- StaticFileHandler.cs
- BindingNavigator.cs
- ColumnPropertiesGroup.cs
- TreeNode.cs
- TabPage.cs
- HtmlInputSubmit.cs
- TableLayoutPanel.cs
- CacheOutputQuery.cs
- ColumnReorderedEventArgs.cs
- BitmapEncoder.cs