Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- TableLayoutPanelCellPosition.cs
- ListViewHitTestInfo.cs
- HuffCodec.cs
- StringFormat.cs
- SamlAuthorizationDecisionClaimResource.cs
- GlyphManager.cs
- XmlCodeExporter.cs
- XPathItem.cs
- EncoderFallback.cs
- DataError.cs
- FamilyTypeface.cs
- GridViewSelectEventArgs.cs
- _FixedSizeReader.cs
- SqlRowUpdatingEvent.cs
- StyleConverter.cs
- HierarchicalDataBoundControl.cs
- QueryableDataSourceHelper.cs
- TypeGeneratedEventArgs.cs
- WindowsRegion.cs
- entityreference_tresulttype.cs
- LockRenewalTask.cs
- CharacterString.cs
- indexingfiltermarshaler.cs
- DataControlPagerLinkButton.cs
- login.cs
- XmlDocumentSerializer.cs
- HelpEvent.cs
- SqlDataSourceView.cs
- FontStretchConverter.cs
- XmlNamespaceDeclarationsAttribute.cs
- TreeBuilderBamlTranslator.cs
- HwndSource.cs
- ExpandableObjectConverter.cs
- StorageConditionPropertyMapping.cs
- Floater.cs
- ForceCopyBuildProvider.cs
- LockedAssemblyCache.cs
- InvokeHandlers.cs
- BinaryQueryOperator.cs
- DocumentGrid.cs
- CompensatableTransactionScopeActivityDesigner.cs
- XmlSchemaException.cs
- ReflectionHelper.cs
- PartialTrustHelpers.cs
- NotificationContext.cs
- SafeHandles.cs
- BoolLiteral.cs
- PlatformNotSupportedException.cs
- ToolStripOverflowButton.cs
- CqlQuery.cs
- TableRow.cs
- StyleSelector.cs
- SQLConvert.cs
- typedescriptorpermission.cs
- MarkerProperties.cs
- ArglessEventHandlerProxy.cs
- XPathAxisIterator.cs
- complextypematerializer.cs
- HttpCapabilitiesBase.cs
- isolationinterop.cs
- StorageMappingItemCollection.cs
- PagerStyle.cs
- ToolStripDropDownDesigner.cs
- TemplateField.cs
- UIElement.cs
- COM2IManagedPerPropertyBrowsingHandler.cs
- TreeView.cs
- HyperLinkColumn.cs
- DeferredElementTreeState.cs
- DefaultPropertiesToSend.cs
- NgenServicingAttributes.cs
- ResolveCompletedEventArgs.cs
- DeliveryRequirementsAttribute.cs
- WriteStateInfoBase.cs
- DeobfuscatingStream.cs
- CombinedGeometry.cs
- ChangeInterceptorAttribute.cs
- BuildProvider.cs
- StylusPointPropertyInfoDefaults.cs
- BindingMemberInfo.cs
- SqlConnectionStringBuilder.cs
- DesignBindingPropertyDescriptor.cs
- KeyInterop.cs
- ThreadBehavior.cs
- SafeFileMappingHandle.cs
- ResourceReferenceExpressionConverter.cs
- AmbientValueAttribute.cs
- SqlConnection.cs
- LinkedResourceCollection.cs
- InstanceData.cs
- InstanceNotFoundException.cs
- HtmlInputText.cs
- Bitmap.cs
- QueryableDataSourceEditData.cs
- Profiler.cs
- PeerNameRecord.cs
- IpcChannel.cs
- Math.cs
- NoClickablePointException.cs
- NegotiationTokenAuthenticatorStateCache.cs