Code:
/ 4.0 / 4.0 / 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. 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
- MsmqElementBase.cs
- CommonDialog.cs
- PersonalizationStateInfo.cs
- ObjectTag.cs
- ExpandSegmentCollection.cs
- DbMetaDataCollectionNames.cs
- cryptoapiTransform.cs
- PackageStore.cs
- OleDbEnumerator.cs
- basemetadatamappingvisitor.cs
- Regex.cs
- WindowsNonControl.cs
- StoreAnnotationsMap.cs
- CustomAssemblyResolver.cs
- HtmlHistory.cs
- HierarchicalDataBoundControlAdapter.cs
- PanelStyle.cs
- CompositeScriptReferenceEventArgs.cs
- BulletDecorator.cs
- TabControlEvent.cs
- WebPartMovingEventArgs.cs
- TemplateInstanceAttribute.cs
- ArraySortHelper.cs
- CustomCredentialPolicy.cs
- RowParagraph.cs
- WebPartTracker.cs
- DocumentPageHost.cs
- NotCondition.cs
- XmlComment.cs
- SpeechRecognizer.cs
- Size.cs
- DesignerTransaction.cs
- IndexedString.cs
- DataGridAddNewRow.cs
- SoapCodeExporter.cs
- Main.cs
- PartitionResolver.cs
- RepeaterDesigner.cs
- CatalogPartDesigner.cs
- MethodAccessException.cs
- Model3DGroup.cs
- BamlLocalizationDictionary.cs
- ReflectionPermission.cs
- ListItemCollection.cs
- MenuTracker.cs
- EncryptedPackage.cs
- EntityDataSourceState.cs
- XPathPatternBuilder.cs
- ErrorLog.cs
- DbConnectionPoolGroup.cs
- SweepDirectionValidation.cs
- CursorConverter.cs
- NavigationProgressEventArgs.cs
- TraceContextRecord.cs
- TimeEnumHelper.cs
- FileLevelControlBuilderAttribute.cs
- BaseCollection.cs
- DrawingDrawingContext.cs
- SqlDataSourceWizardForm.cs
- TextWriter.cs
- ScrollProperties.cs
- SqlProviderServices.cs
- ViewSimplifier.cs
- MethodResolver.cs
- Style.cs
- Dynamic.cs
- ObjectSelectorEditor.cs
- DllNotFoundException.cs
- SafeNativeMethods.cs
- TextServicesPropertyRanges.cs
- ScriptingWebServicesSectionGroup.cs
- AdapterSwitches.cs
- DrawingContext.cs
- TableLayoutCellPaintEventArgs.cs
- ToolStripLocationCancelEventArgs.cs
- XhtmlBasicPageAdapter.cs
- SimpleType.cs
- DynamicResourceExtensionConverter.cs
- SocketCache.cs
- ServiceModelActivity.cs
- OleStrCAMarshaler.cs
- WindowsListViewSubItem.cs
- TypeElement.cs
- WindowsClientCredential.cs
- CompareValidator.cs
- FontSizeConverter.cs
- ConsoleTraceListener.cs
- ZoneButton.cs
- ProvidePropertyAttribute.cs
- DbMetaDataCollectionNames.cs
- DetailsViewRow.cs
- ImageBrush.cs
- SmtpMail.cs
- XmlValidatingReaderImpl.cs
- AssertValidation.cs
- SecurityAccessDeniedException.cs
- Expression.cs
- StreamGeometryContext.cs
- ConfigsHelper.cs
- BinaryFormatter.cs