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
- ObjectManager.cs
- XamlVector3DCollectionSerializer.cs
- SqlBuilder.cs
- AnnotationResource.cs
- tooltip.cs
- OledbConnectionStringbuilder.cs
- WSSecureConversationDec2005.cs
- BitmapEffectGroup.cs
- SpanIndex.cs
- OracleInfoMessageEventArgs.cs
- QueryCacheKey.cs
- StateDesignerConnector.cs
- TcpDuplicateContext.cs
- IntPtr.cs
- ValidationErrorEventArgs.cs
- SqlDataSourceCache.cs
- RelationshipConstraintValidator.cs
- HttpModulesSection.cs
- SizeF.cs
- _SingleItemRequestCache.cs
- Baml2006ReaderFrame.cs
- XmlLoader.cs
- CmsInterop.cs
- FigureParagraph.cs
- ImageButton.cs
- Rect3DValueSerializer.cs
- UrlAuthFailureHandler.cs
- ResolveResponse.cs
- CheckBoxFlatAdapter.cs
- ChannelCacheSettings.cs
- GridViewRow.cs
- CollectionsUtil.cs
- ToolStripContainer.cs
- ExtractedStateEntry.cs
- SolidColorBrush.cs
- CustomTrackingRecord.cs
- HttpApplication.cs
- ZipIORawDataFileBlock.cs
- DbParameterHelper.cs
- Expr.cs
- RelationshipDetailsRow.cs
- InheritablePropertyChangeInfo.cs
- TypeCodeDomSerializer.cs
- SchemaInfo.cs
- ToolStripPanelRenderEventArgs.cs
- WindowsSysHeader.cs
- InstanceHandleConflictException.cs
- FirstMatchCodeGroup.cs
- SQLInt16.cs
- FontSource.cs
- QueryValue.cs
- ToolStripItemTextRenderEventArgs.cs
- TableParagraph.cs
- PaperSource.cs
- TimelineClockCollection.cs
- OraclePermissionAttribute.cs
- PropertyChange.cs
- InkCanvasInnerCanvas.cs
- HwndAppCommandInputProvider.cs
- ListDictionaryInternal.cs
- SpAudioStreamWrapper.cs
- NativeMethods.cs
- MenuItemBindingCollection.cs
- _AuthenticationState.cs
- RegexInterpreter.cs
- TableItemStyle.cs
- TraceHandler.cs
- NameTable.cs
- IndexingContentUnit.cs
- PackageDigitalSignatureManager.cs
- SymLanguageVendor.cs
- SettingsSection.cs
- NumberFormatInfo.cs
- RectangleF.cs
- DirectionalLight.cs
- IconConverter.cs
- ReliableSession.cs
- SupportingTokenProviderSpecification.cs
- DecoderNLS.cs
- Int32CollectionValueSerializer.cs
- WebServiceErrorEvent.cs
- ListViewInsertedEventArgs.cs
- TableLayoutSettings.cs
- EditorPart.cs
- ProgressBarAutomationPeer.cs
- DSACryptoServiceProvider.cs
- OdbcException.cs
- Point3DAnimation.cs
- SwitchLevelAttribute.cs
- StandardToolWindows.cs
- ObjectConverter.cs
- SwitchElementsCollection.cs
- DataSourceControl.cs
- ThreadSafeMessageFilterTable.cs
- SchemaElementLookUpTableEnumerator.cs
- ThreadAttributes.cs
- JsonFormatWriterGenerator.cs
- DoubleCollectionValueSerializer.cs
- DesignerRegion.cs
- XmlSchemaInfo.cs