Code:
/ 4.0 / 4.0 / 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. 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
- OrderedParallelQuery.cs
- ContentFilePart.cs
- WebUtil.cs
- DownloadProgressEventArgs.cs
- StrongNameUtility.cs
- DrawTreeNodeEventArgs.cs
- ObjectContext.cs
- Pens.cs
- _BasicClient.cs
- PolyQuadraticBezierSegment.cs
- MenuStrip.cs
- LinkedResource.cs
- SelectionEditingBehavior.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- HttpsHostedTransportConfiguration.cs
- ResourceDescriptionAttribute.cs
- ConversionContext.cs
- TableItemStyle.cs
- ScrollEvent.cs
- Blend.cs
- RepeatButtonAutomationPeer.cs
- InvokeMethodActivity.cs
- CipherData.cs
- MachineKeySection.cs
- SystemFonts.cs
- OdbcTransaction.cs
- AddInControllerImpl.cs
- PointCollection.cs
- AuthenticationConfig.cs
- DistributedTransactionPermission.cs
- webbrowsersite.cs
- JumpPath.cs
- ResXFileRef.cs
- storepermission.cs
- SecureStringHasher.cs
- StrokeSerializer.cs
- DataControlLinkButton.cs
- DeadLetterQueue.cs
- ProfileInfo.cs
- InvalidPrinterException.cs
- XmlSchemaInferenceException.cs
- NetCodeGroup.cs
- DataPagerCommandEventArgs.cs
- GenericXmlSecurityToken.cs
- GifBitmapDecoder.cs
- DataGridTextBox.cs
- XmlTextAttribute.cs
- InkCanvasInnerCanvas.cs
- CodePageUtils.cs
- TextWriter.cs
- MetadataUtilsSmi.cs
- DesignerDataStoredProcedure.cs
- SqlDataSourceConfigureSelectPanel.cs
- StylusPointDescription.cs
- DataColumn.cs
- DecoderFallback.cs
- DataGridTextBoxColumn.cs
- MethodBuilder.cs
- FormParameter.cs
- ToolTipService.cs
- ContextQuery.cs
- MultiBindingExpression.cs
- ParameterToken.cs
- TraceContext.cs
- ButtonColumn.cs
- FrugalList.cs
- Icon.cs
- Bitmap.cs
- AdRotator.cs
- RemotingAttributes.cs
- MarkupCompilePass2.cs
- XPathPatternBuilder.cs
- SmtpDigestAuthenticationModule.cs
- StylusEditingBehavior.cs
- SetIndexBinder.cs
- DataGridViewComboBoxCell.cs
- DBPropSet.cs
- SizeAnimation.cs
- MultiAsyncResult.cs
- EntityDataSourceEntitySetNameItem.cs
- TableColumn.cs
- Win32Exception.cs
- XmlAnyElementAttribute.cs
- QueryStringParameter.cs
- BufferedOutputStream.cs
- SqlAliasesReferenced.cs
- FtpWebRequest.cs
- DataGridViewEditingControlShowingEventArgs.cs
- WebResourceAttribute.cs
- SqlBulkCopyColumnMappingCollection.cs
- TextOptions.cs
- DSASignatureFormatter.cs
- StaticExtension.cs
- Monitor.cs
- ScriptServiceAttribute.cs
- AsmxEndpointPickerExtension.cs
- EditingCommands.cs
- ProfileInfo.cs
- EventSinkActivity.cs
- Variable.cs