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
- ChannelManagerHelpers.cs
- Rect3D.cs
- SendMailErrorEventArgs.cs
- SessionSymmetricTransportSecurityProtocolFactory.cs
- DefaultEventAttribute.cs
- BaseAppDomainProtocolHandler.cs
- IndexedEnumerable.cs
- BooleanProjectedSlot.cs
- _OSSOCK.cs
- StackOverflowException.cs
- XmlSchemaSimpleTypeUnion.cs
- XmlChildEnumerator.cs
- HttpModuleActionCollection.cs
- NullRuntimeConfig.cs
- PropertySourceInfo.cs
- BidPrivateBase.cs
- XmlSchemaObject.cs
- PropertyChangingEventArgs.cs
- DesignerAttribute.cs
- SingleConverter.cs
- HttpFormatExtensions.cs
- WithStatement.cs
- SignedXml.cs
- ServiceModelPerformanceCounters.cs
- DiffuseMaterial.cs
- SqlBulkCopyColumnMappingCollection.cs
- ScriptingSectionGroup.cs
- ItemMap.cs
- EventManager.cs
- HttpDebugHandler.cs
- DataViewManager.cs
- MouseWheelEventArgs.cs
- RootBuilder.cs
- SqlBooleanizer.cs
- EncryptRequest.cs
- UserControl.cs
- EpmSourcePathSegment.cs
- BuildProviderAppliesToAttribute.cs
- StringDictionaryWithComparer.cs
- XPathDescendantIterator.cs
- PersistChildrenAttribute.cs
- AuthenticationService.cs
- XPathAncestorIterator.cs
- PropertyGridView.cs
- MaterializeFromAtom.cs
- PropertyGrid.cs
- RectangleConverter.cs
- TdsParserHelperClasses.cs
- ServiceBusyException.cs
- PackagingUtilities.cs
- Triangle.cs
- Command.cs
- CodeAssignStatement.cs
- SystemColorTracker.cs
- DataGridGeneralPage.cs
- BufferedGraphics.cs
- BitmapSource.cs
- XmlSerializer.cs
- SemanticBasicElement.cs
- Regex.cs
- Collection.cs
- ClassHandlersStore.cs
- Axis.cs
- NavigationWindow.cs
- RadioButtonFlatAdapter.cs
- SrgsRuleRef.cs
- HtmlProps.cs
- FieldAccessException.cs
- XmlSchemaValidationException.cs
- AuthenticationModuleElement.cs
- TrustSection.cs
- RuntimeConfigurationRecord.cs
- ScriptReferenceBase.cs
- RegexTree.cs
- SqlTypesSchemaImporter.cs
- FontNameEditor.cs
- TaskExceptionHolder.cs
- XsltFunctions.cs
- SchemaMerger.cs
- AspProxy.cs
- CompositeDuplexBindingElementImporter.cs
- X509Certificate2Collection.cs
- CommandConverter.cs
- HexParser.cs
- COAUTHINFO.cs
- StrokeCollection.cs
- TypeConverter.cs
- controlskin.cs
- Path.cs
- FlowLayout.cs
- DbParameterHelper.cs
- SemaphoreFullException.cs
- ToolStripItemEventArgs.cs
- DbConnectionPoolGroup.cs
- TcpConnectionPoolSettings.cs
- SQLRoleProvider.cs
- PointLightBase.cs
- SqlAliasesReferenced.cs
- DataRow.cs
- HostedTransportConfigurationManager.cs