Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- Context.cs
- UnitySerializationHolder.cs
- SortedDictionary.cs
- PrintDialogDesigner.cs
- AppSettingsReader.cs
- MimeTextImporter.cs
- Module.cs
- NodeLabelEditEvent.cs
- CodeMemberMethod.cs
- XPathNodeHelper.cs
- StructuredProperty.cs
- LogManagementAsyncResult.cs
- ResourcesChangeInfo.cs
- WSSecurityOneDotZeroSendSecurityHeader.cs
- PersonalizationProviderHelper.cs
- CultureInfoConverter.cs
- DrawingContextWalker.cs
- BackgroundFormatInfo.cs
- DataTableNameHandler.cs
- XamlSerializerUtil.cs
- RootAction.cs
- ScaleTransform3D.cs
- List.cs
- XmlNamedNodeMap.cs
- VsPropertyGrid.cs
- MethodExpression.cs
- MailMessageEventArgs.cs
- CurrentChangingEventArgs.cs
- VerificationException.cs
- ICollection.cs
- SizeConverter.cs
- MetadataArtifactLoaderCompositeFile.cs
- WebPartManager.cs
- DataBoundControlActionList.cs
- FontFaceLayoutInfo.cs
- X509InitiatorCertificateClientElement.cs
- MethodResolver.cs
- StopStoryboard.cs
- PersonalizationStateInfo.cs
- DictionaryManager.cs
- Constants.cs
- RTLAwareMessageBox.cs
- TextAutomationPeer.cs
- FileCodeGroup.cs
- EtwTrackingParticipant.cs
- ModelFactory.cs
- ScopelessEnumAttribute.cs
- HttpHandlerAction.cs
- GregorianCalendarHelper.cs
- NotSupportedException.cs
- DrawingCollection.cs
- DataObjectPastingEventArgs.cs
- TabPage.cs
- ToolStripScrollButton.cs
- LineServicesCallbacks.cs
- FacetValues.cs
- PeerCollaboration.cs
- ScriptReferenceEventArgs.cs
- WebPartZoneBase.cs
- WinEventTracker.cs
- URI.cs
- HtmlGenericControl.cs
- DoubleKeyFrameCollection.cs
- ToggleProviderWrapper.cs
- MouseCaptureWithinProperty.cs
- ToolStrip.cs
- DecoderBestFitFallback.cs
- TypedDataSetSchemaImporterExtensionFx35.cs
- dtdvalidator.cs
- ToolStripArrowRenderEventArgs.cs
- ServiceHostFactory.cs
- DataServiceQuery.cs
- ListViewAutomationPeer.cs
- FixedSOMFixedBlock.cs
- InstanceDataCollectionCollection.cs
- Label.cs
- SymbolType.cs
- MetadataItemSerializer.cs
- DragEvent.cs
- SendActivityValidator.cs
- TypeBuilder.cs
- XamlGridLengthSerializer.cs
- TableLayoutPanel.cs
- BamlVersionHeader.cs
- ReadOnlyMetadataCollection.cs
- PersonalizationStateInfo.cs
- Composition.cs
- BrushValueSerializer.cs
- HostSecurityManager.cs
- ConcurrencyMode.cs
- ResourceDictionaryCollection.cs
- SignedPkcs7.cs
- SystemThemeKey.cs
- UnitySerializationHolder.cs
- HtmlInputCheckBox.cs
- CommandHelpers.cs
- SiteMembershipCondition.cs
- WebAdminConfigurationHelper.cs
- BaseTemplateParser.cs
- XslException.cs