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
- KeyBinding.cs
- GroupBoxAutomationPeer.cs
- ValidatingPropertiesEventArgs.cs
- UrlMapping.cs
- ActiveXHost.cs
- HostedNamedPipeTransportManager.cs
- UnsafeNativeMethods.cs
- Attributes.cs
- TagPrefixInfo.cs
- MemoryRecordBuffer.cs
- FixedElement.cs
- FontDriver.cs
- ProxyHelper.cs
- EndpointFilterProvider.cs
- ThicknessAnimationBase.cs
- HiddenField.cs
- TextTreeTextNode.cs
- NullableConverter.cs
- TextElementEnumerator.cs
- WindowsButton.cs
- UpdatePanelTrigger.cs
- Span.cs
- GenericTypeParameterConverter.cs
- CodeMemberEvent.cs
- Invariant.cs
- SqlResolver.cs
- OutputCacheProfile.cs
- JapaneseCalendar.cs
- SetterBaseCollection.cs
- IBuiltInEvidence.cs
- XmlAttributes.cs
- LoginCancelEventArgs.cs
- RepeaterDataBoundAdapter.cs
- LOSFormatter.cs
- ReadOnlyDataSourceView.cs
- ServiceDesigner.cs
- XamlToRtfWriter.cs
- MediaEntryAttribute.cs
- Separator.cs
- DbConnectionHelper.cs
- UnicodeEncoding.cs
- HttpCookiesSection.cs
- RegistryConfigurationProvider.cs
- SystemUdpStatistics.cs
- RemoteCryptoSignHashRequest.cs
- UpDownEvent.cs
- OrderedHashRepartitionEnumerator.cs
- _ContextAwareResult.cs
- Localizer.cs
- MessageQueueInstaller.cs
- DrawingContextDrawingContextWalker.cs
- TypeBrowserDialog.cs
- DesignerActionService.cs
- Track.cs
- BuildTopDownAttribute.cs
- DbDataReader.cs
- Control.cs
- XMLUtil.cs
- HandledMouseEvent.cs
- Light.cs
- TypeConverters.cs
- OrderingInfo.cs
- OLEDB_Util.cs
- DataGridTextBoxColumn.cs
- Resources.Designer.cs
- Style.cs
- ResourceProviderFactory.cs
- ReaderWriterLockWrapper.cs
- ObjectTag.cs
- DefaultObjectMappingItemCollection.cs
- WindowsSolidBrush.cs
- EventDescriptorCollection.cs
- Positioning.cs
- AddInStore.cs
- GACMembershipCondition.cs
- HttpRequest.cs
- UrlMappingsSection.cs
- UnicastIPAddressInformationCollection.cs
- rsa.cs
- NameValueFileSectionHandler.cs
- SpAudioStreamWrapper.cs
- SessionSwitchEventArgs.cs
- ReferentialConstraint.cs
- ErrorInfoXmlDocument.cs
- ExpandSegmentCollection.cs
- ReadOnlyHierarchicalDataSourceView.cs
- COM2ColorConverter.cs
- DictionaryTraceRecord.cs
- WindowsTab.cs
- DesignTimeParseData.cs
- RootNamespaceAttribute.cs
- MonthCalendar.cs
- TextClipboardData.cs
- PropertyEmitterBase.cs
- MenuItemAutomationPeer.cs
- SettingsPropertyCollection.cs
- DownloadProgressEventArgs.cs
- _LocalDataStoreMgr.cs
- RepeaterDataBoundAdapter.cs
- EventKeyword.cs