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
- SqlDataReaderSmi.cs
- MetadataSection.cs
- ColumnBinding.cs
- ComponentDesigner.cs
- MetaModel.cs
- sitestring.cs
- EntitySqlQueryCacheKey.cs
- TargetException.cs
- CapabilitiesAssignment.cs
- Types.cs
- Normalizer.cs
- AutomationPropertyInfo.cs
- VisualStyleInformation.cs
- FigureHelper.cs
- figurelengthconverter.cs
- FrameSecurityDescriptor.cs
- Timer.cs
- ColorIndependentAnimationStorage.cs
- StorageComplexPropertyMapping.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- PrivilegeNotHeldException.cs
- Iis7Helper.cs
- HeaderUtility.cs
- XmlIgnoreAttribute.cs
- BadImageFormatException.cs
- EnumerableCollectionView.cs
- GrammarBuilderPhrase.cs
- ToolStripItemRenderEventArgs.cs
- UnauthorizedWebPart.cs
- DBSchemaRow.cs
- ListViewGroupConverter.cs
- GenericRootAutomationPeer.cs
- XmlSchemaAnnotation.cs
- TextTreeTextBlock.cs
- Vector3D.cs
- GeneralTransform3DGroup.cs
- SortKey.cs
- DbModificationClause.cs
- StandardTransformFactory.cs
- ExpressionEditorAttribute.cs
- ServerValidateEventArgs.cs
- SerializationSectionGroup.cs
- ConfigurationException.cs
- HttpFileCollection.cs
- ReadOnlyHierarchicalDataSource.cs
- MailWriter.cs
- Nullable.cs
- CustomMenuItemCollection.cs
- HtmlContainerControl.cs
- AttributeTableBuilder.cs
- CancellationToken.cs
- UniqueID.cs
- EventEntry.cs
- ModuleBuilder.cs
- EntityDataSourceDesigner.cs
- CodeTypeParameter.cs
- FrameworkPropertyMetadata.cs
- SchemaCollectionPreprocessor.cs
- VectorCollectionConverter.cs
- HtmlInputPassword.cs
- DbException.cs
- Int32AnimationBase.cs
- InvalidProgramException.cs
- SqlServer2KCompatibilityCheck.cs
- WorkflowPersistenceContext.cs
- SpeechEvent.cs
- Wow64ConfigurationLoader.cs
- TextTreeText.cs
- EntityParameterCollection.cs
- StreamSecurityUpgradeAcceptor.cs
- DataGridViewComboBoxEditingControl.cs
- XPathNodeInfoAtom.cs
- DragEventArgs.cs
- CancellationTokenRegistration.cs
- UnmanagedMemoryStream.cs
- SqlUtil.cs
- XamlHostingSectionGroup.cs
- Vector3DAnimation.cs
- ProfileGroupSettingsCollection.cs
- AttachInfo.cs
- UnsettableComboBox.cs
- UniqueConstraint.cs
- UnsettableComboBox.cs
- CoreSwitches.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- NamedElement.cs
- XsltCompileContext.cs
- ListenerElementsCollection.cs
- SqlDependencyListener.cs
- ReceiveReply.cs
- BuildManager.cs
- DesignerActionPanel.cs
- FontUnit.cs
- ExpressionStringBuilder.cs
- RectangleGeometry.cs
- ArraySubsetEnumerator.cs
- WebPartDescription.cs
- LeaseManager.cs
- Point3DAnimation.cs
- SecurityPermission.cs