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
- FileIOPermission.cs
- NativeActivity.cs
- Int64Converter.cs
- versioninfo.cs
- WindowsFormsHost.cs
- Token.cs
- StatusCommandUI.cs
- Assert.cs
- LayoutManager.cs
- DrawingContextWalker.cs
- WMICapabilities.cs
- CodeConditionStatement.cs
- SplineKeyFrames.cs
- PrintDocument.cs
- MsmqAuthenticationMode.cs
- PropertyPathConverter.cs
- BinaryExpression.cs
- HMAC.cs
- ReferentialConstraintRoleElement.cs
- WindowsImpersonationContext.cs
- DefaultTraceListener.cs
- Mappings.cs
- GlobalizationAssembly.cs
- ProgressBar.cs
- XhtmlBasicCalendarAdapter.cs
- AdCreatedEventArgs.cs
- Grant.cs
- HtmlInputHidden.cs
- RadioButton.cs
- SchemaExporter.cs
- InputMethodStateChangeEventArgs.cs
- TextOutput.cs
- OletxTransactionManager.cs
- WindowsButton.cs
- ImportContext.cs
- Cursor.cs
- EUCJPEncoding.cs
- _BaseOverlappedAsyncResult.cs
- HtmlCommandAdapter.cs
- Filter.cs
- MimeTypePropertyAttribute.cs
- DataSysAttribute.cs
- XNodeValidator.cs
- ApplicationContext.cs
- Delegate.cs
- PropertyChangedEventArgs.cs
- ThreadStartException.cs
- COM2PictureConverter.cs
- InternalConfigEventArgs.cs
- TypeDescriptor.cs
- XmlSchemaFacet.cs
- ColorTransformHelper.cs
- SoapIncludeAttribute.cs
- TextEditorSpelling.cs
- PropertyTab.cs
- NativeMethodsCLR.cs
- ToolboxDataAttribute.cs
- FullTextState.cs
- TdsParserSessionPool.cs
- EditableTreeList.cs
- HierarchicalDataBoundControlAdapter.cs
- Clipboard.cs
- PingReply.cs
- ZipIOBlockManager.cs
- ConnectionsZone.cs
- AvTrace.cs
- mansign.cs
- GridViewPageEventArgs.cs
- IQueryable.cs
- ColumnHeaderConverter.cs
- SafeNativeMethods.cs
- EntityDataSourceDataSelectionPanel.cs
- CultureInfoConverter.cs
- AccessDataSourceWizardForm.cs
- ChtmlImageAdapter.cs
- EditorPart.cs
- BreakRecordTable.cs
- StorageInfo.cs
- MailMessage.cs
- EndpointDiscoveryMetadata11.cs
- WorkflowServiceHost.cs
- ResolvedKeyFrameEntry.cs
- PartialTrustHelpers.cs
- BitmapFrame.cs
- EntityContainerEntitySet.cs
- CroppedBitmap.cs
- CheckStoreFileValidityRequest.cs
- Content.cs
- ArgIterator.cs
- ViewKeyConstraint.cs
- ByteStack.cs
- AuthenticatedStream.cs
- QueryExecutionOption.cs
- VisualCollection.cs
- AppSettingsSection.cs
- MbpInfo.cs
- CurrencyWrapper.cs
- PrePostDescendentsWalker.cs
- ActiveDocumentEvent.cs
- DataSourceBooleanViewSchemaConverter.cs