Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ResourceContainer.cs
- PropertyToken.cs
- RuntimeHelpers.cs
- ItemCollection.cs
- ListInitExpression.cs
- LayoutTableCell.cs
- ListViewContainer.cs
- StandardTransformFactory.cs
- DesignerVerbToolStripMenuItem.cs
- EffectiveValueEntry.cs
- WebEventCodes.cs
- SqlDataAdapter.cs
- StorageComplexPropertyMapping.cs
- AsyncStreamReader.cs
- SqlException.cs
- DSASignatureFormatter.cs
- WebEventTraceProvider.cs
- NotImplementedException.cs
- XsltCompileContext.cs
- FixUpCollection.cs
- Scripts.cs
- Point3D.cs
- Point3DCollectionConverter.cs
- DataReaderContainer.cs
- ControlDesignerState.cs
- CursorInteropHelper.cs
- objectresult_tresulttype.cs
- ImagingCache.cs
- RsaSecurityKey.cs
- Thumb.cs
- BaseValidator.cs
- HtmlToClrEventProxy.cs
- BuiltInExpr.cs
- DataGridViewCellLinkedList.cs
- ReflectionTypeLoadException.cs
- ImmutableObjectAttribute.cs
- ByteStack.cs
- PkcsMisc.cs
- path.cs
- StoreContentChangedEventArgs.cs
- PropertyValueUIItem.cs
- TrackingWorkflowEventArgs.cs
- DocobjHost.cs
- TextProperties.cs
- ImageFormatConverter.cs
- ControlTemplate.cs
- StylusSystemGestureEventArgs.cs
- HttpCookie.cs
- CancelEventArgs.cs
- RemoteWebConfigurationHostStream.cs
- SymbolType.cs
- ProcessingInstructionAction.cs
- TabletDevice.cs
- HexParser.cs
- ToolStripContentPanel.cs
- MouseEvent.cs
- SQLByte.cs
- FormsAuthentication.cs
- XmlElement.cs
- TextEffectCollection.cs
- SQLStringStorage.cs
- CodeGenerationManager.cs
- WebCategoryAttribute.cs
- PanelDesigner.cs
- DockEditor.cs
- Group.cs
- PreloadHost.cs
- EntitySqlQueryState.cs
- ModuleBuilder.cs
- ResourcePermissionBaseEntry.cs
- DataSourceXmlClassAttribute.cs
- CultureMapper.cs
- IdnMapping.cs
- Registry.cs
- InputEventArgs.cs
- DataTable.cs
- WizardPanelChangingEventArgs.cs
- MulticastDelegate.cs
- WebPartConnectionsCloseVerb.cs
- TrackingCondition.cs
- TypeInitializationException.cs
- figurelengthconverter.cs
- OracleConnection.cs
- UnrecognizedAssertionsBindingElement.cs
- ExtensionQuery.cs
- CalendarItem.cs
- ObjectDataSourceEventArgs.cs
- DataGridTextBoxColumn.cs
- Single.cs
- WebPartTransformer.cs
- _OSSOCK.cs
- SoapSchemaExporter.cs
- Converter.cs
- ForEachAction.cs
- LocalizabilityAttribute.cs
- CompressEmulationStream.cs
- WorkflowInstance.cs
- TdsRecordBufferSetter.cs
- Queue.cs
- WebServiceErrorEvent.cs