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
- DocumentGridPage.cs
- ButtonChrome.cs
- PropertyInformation.cs
- ProcessHostServerConfig.cs
- DiagnosticTrace.cs
- RouteParameter.cs
- DurationConverter.cs
- ToolStripSplitStackLayout.cs
- PerfCounters.cs
- ClientCultureInfo.cs
- SystemIPInterfaceStatistics.cs
- Double.cs
- MetadataImporter.cs
- StylusPlugInCollection.cs
- Point3DCollection.cs
- DataPager.cs
- FaultHandlingFilter.cs
- ObjectItemConventionAssemblyLoader.cs
- AliasExpr.cs
- WindowsBrush.cs
- ToggleButtonAutomationPeer.cs
- CellCreator.cs
- XmlDataDocument.cs
- DependencyPropertyHelper.cs
- CaseStatementProjectedSlot.cs
- RijndaelManagedTransform.cs
- ListViewAutomationPeer.cs
- ConnectionPoint.cs
- GreenMethods.cs
- XdrBuilder.cs
- WinFormsSecurity.cs
- WorkflowInspectionServices.cs
- DynamicDocumentPaginator.cs
- SHA1Managed.cs
- AuthenticationManager.cs
- DynamicDocumentPaginator.cs
- WebConfigurationFileMap.cs
- PersistenceContextEnlistment.cs
- SqlVersion.cs
- ObfuscateAssemblyAttribute.cs
- TabItemWrapperAutomationPeer.cs
- SecondaryViewProvider.cs
- XamlStream.cs
- DoubleCollectionValueSerializer.cs
- DaylightTime.cs
- GatewayDefinition.cs
- SmtpNtlmAuthenticationModule.cs
- RSAOAEPKeyExchangeFormatter.cs
- ObjectContextServiceProvider.cs
- X509SecurityTokenAuthenticator.cs
- DesignerTextWriter.cs
- OdbcConnectionHandle.cs
- Underline.cs
- BitConverter.cs
- PathNode.cs
- XPathArrayIterator.cs
- initElementDictionary.cs
- SubclassTypeValidator.cs
- ConcurrentQueue.cs
- DataGridViewColumnDesigner.cs
- ImageListImage.cs
- InternalConfigEventArgs.cs
- HwndStylusInputProvider.cs
- TextEditor.cs
- BindingWorker.cs
- DBProviderConfigurationHandler.cs
- SqlFactory.cs
- EasingFunctionBase.cs
- ProfileProvider.cs
- DirectoryNotFoundException.cs
- BitStream.cs
- ConnectionProviderAttribute.cs
- UInt32.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- DeviceContext.cs
- XmlQuerySequence.cs
- ExeConfigurationFileMap.cs
- HitTestResult.cs
- MasterPageBuildProvider.cs
- TextDecorationCollection.cs
- Stroke2.cs
- DisableDpiAwarenessAttribute.cs
- WindowsButton.cs
- IntAverageAggregationOperator.cs
- FormsAuthentication.cs
- ZeroOpNode.cs
- Crc32Helper.cs
- ApplicationException.cs
- PackageFilter.cs
- XmlSchemaCollection.cs
- Rectangle.cs
- DataBoundLiteralControl.cs
- View.cs
- HandledMouseEvent.cs
- CalendarDay.cs
- DataControlFieldsEditor.cs
- StringFormat.cs
- PreDigestedSignedInfo.cs
- baseaxisquery.cs
- CharacterBufferReference.cs