Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SpecialNameAttribute.cs
- PerformanceCounterPermission.cs
- TdsParserStateObject.cs
- ProvidePropertyAttribute.cs
- DrawingContextWalker.cs
- IconEditor.cs
- ViewStateChangedEventArgs.cs
- SettingsPropertyWrongTypeException.cs
- Timer.cs
- AutomationProperty.cs
- IPAddressCollection.cs
- PreservationFileWriter.cs
- IProvider.cs
- CustomAttribute.cs
- XmlDataSourceNodeDescriptor.cs
- ContentWrapperAttribute.cs
- HwndProxyElementProvider.cs
- PermissionRequestEvidence.cs
- DataServiceQuery.cs
- TextServicesCompartment.cs
- StringArrayConverter.cs
- GlyphRunDrawing.cs
- SafeMILHandle.cs
- AnonymousIdentificationSection.cs
- LinkDescriptor.cs
- AssociatedControlConverter.cs
- InternalException.cs
- SoapParser.cs
- EmbeddedObject.cs
- EntityContainer.cs
- QuaternionRotation3D.cs
- RectangleGeometry.cs
- ApplicationTrust.cs
- Compiler.cs
- Int32CAMarshaler.cs
- XamlStackWriter.cs
- Assembly.cs
- ViewEventArgs.cs
- ProjectionNode.cs
- XmlReturnReader.cs
- ArrayList.cs
- HtmlPanelAdapter.cs
- TouchesOverProperty.cs
- Adorner.cs
- TypeConverterMarkupExtension.cs
- TextMetrics.cs
- IntegerValidatorAttribute.cs
- TreeIterator.cs
- FontStretches.cs
- MaskedTextProvider.cs
- InvokeSchedule.cs
- OleStrCAMarshaler.cs
- CultureData.cs
- DataColumnPropertyDescriptor.cs
- CheckBoxFlatAdapter.cs
- HMACSHA512.cs
- HtmlLink.cs
- GridViewColumnCollectionChangedEventArgs.cs
- AsymmetricAlgorithm.cs
- X509ScopedServiceCertificateElement.cs
- WebPartMinimizeVerb.cs
- UpdateCompiler.cs
- EventSetter.cs
- CFStream.cs
- WebPartDescriptionCollection.cs
- OpenFileDialog.cs
- Section.cs
- Separator.cs
- Image.cs
- XmlSchemaIdentityConstraint.cs
- XmlToDatasetMap.cs
- JsonClassDataContract.cs
- DesignerDataRelationship.cs
- ListView.cs
- SoapExtensionTypeElementCollection.cs
- NetworkStream.cs
- XmlHierarchyData.cs
- XPathNode.cs
- Transform3D.cs
- SubMenuStyleCollectionEditor.cs
- ArgumentOutOfRangeException.cs
- Brushes.cs
- _RequestCacheProtocol.cs
- FontSourceCollection.cs
- ClientSideQueueItem.cs
- WorkflowServiceBehavior.cs
- PeerObject.cs
- MemoryPressure.cs
- EmptyStringExpandableObjectConverter.cs
- ControlIdConverter.cs
- TrustManagerPromptUI.cs
- MonikerSyntaxException.cs
- DataGridViewCheckBoxCell.cs
- SpoolingTaskBase.cs
- Barrier.cs
- BypassElement.cs
- MarkedHighlightComponent.cs
- WindowPatternIdentifiers.cs
- RadioButtonList.cs
- FormViewDeleteEventArgs.cs