Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- TimerElapsedEvenArgs.cs
- CodeNamespaceImportCollection.cs
- SystemIPGlobalProperties.cs
- DataSourceCacheDurationConverter.cs
- PauseStoryboard.cs
- RijndaelManaged.cs
- Cursors.cs
- PageHandlerFactory.cs
- UriExt.cs
- ConstructorExpr.cs
- bindurihelper.cs
- AutomationElementCollection.cs
- StyleHelper.cs
- EastAsianLunisolarCalendar.cs
- Point3D.cs
- InternalBufferManager.cs
- ProtocolsConfigurationHandler.cs
- SecurityTokenException.cs
- MachineKeySection.cs
- PrtTicket_Public_Simple.cs
- FullTrustAssembly.cs
- AnnotationAdorner.cs
- TreeView.cs
- DataGridClipboardCellContent.cs
- InOutArgument.cs
- GlyphCollection.cs
- SequenceQuery.cs
- MenuItem.cs
- DataRowView.cs
- HScrollBar.cs
- MimePart.cs
- NTAccount.cs
- XmlSchemaAttributeGroup.cs
- MultiDataTrigger.cs
- WinEventHandler.cs
- XmlILTrace.cs
- unsafenativemethodsother.cs
- UrlPropertyAttribute.cs
- SamlConstants.cs
- CompilerResults.cs
- ExternalFile.cs
- CollectionDataContract.cs
- CapabilitiesSection.cs
- SiteMapNodeItemEventArgs.cs
- MediaContext.cs
- ImageClickEventArgs.cs
- CodeTypeParameterCollection.cs
- RegisteredArrayDeclaration.cs
- COAUTHINFO.cs
- SQLByteStorage.cs
- DisplayMemberTemplateSelector.cs
- DetailsViewDeletedEventArgs.cs
- PkcsUtils.cs
- Throw.cs
- ListChunk.cs
- DbConnectionStringCommon.cs
- DataGridViewTextBoxEditingControl.cs
- HttpWebResponse.cs
- ReadWriteSpinLock.cs
- SingleStorage.cs
- XmlTextWriter.cs
- DigitalSignatureProvider.cs
- X509Certificate.cs
- StylusSystemGestureEventArgs.cs
- XmlSchemaAnnotation.cs
- TagMapInfo.cs
- CapabilitiesUse.cs
- Int16Converter.cs
- EdmToObjectNamespaceMap.cs
- DataGridViewAutoSizeModeEventArgs.cs
- RepeatBehaviorConverter.cs
- DetailsViewUpdatedEventArgs.cs
- JsonFormatReaderGenerator.cs
- StaticSiteMapProvider.cs
- XmlDocumentType.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- NamespaceListProperty.cs
- Border.cs
- exports.cs
- SwitchDesigner.xaml.cs
- TargetControlTypeAttribute.cs
- RIPEMD160.cs
- SpecialFolderEnumConverter.cs
- WebBrowserProgressChangedEventHandler.cs
- DecoderBestFitFallback.cs
- Page.cs
- SecurityRuntime.cs
- ZipIOBlockManager.cs
- SecondaryViewProvider.cs
- ModelChangedEventArgsImpl.cs
- BamlResourceSerializer.cs
- RelatedView.cs
- DataGridAutomationPeer.cs
- DataBindingHandlerAttribute.cs
- CssTextWriter.cs
- MetadataSource.cs
- LocalizabilityAttribute.cs
- ToolStripStatusLabel.cs
- BitmapMetadataEnumerator.cs
- InputDevice.cs