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
- Object.cs
- DataTable.cs
- Operand.cs
- ByteStreamMessageEncoderFactory.cs
- ParameterCollection.cs
- RegionInfo.cs
- WebPartCancelEventArgs.cs
- XamlWriter.cs
- AuthorizationRule.cs
- BehaviorEditorPart.cs
- validationstate.cs
- MsmqProcessProtocolHandler.cs
- IntersectQueryOperator.cs
- Int32RectValueSerializer.cs
- CompilerParameters.cs
- SqlConnectionPoolGroupProviderInfo.cs
- DiscreteKeyFrames.cs
- AssemblyCollection.cs
- XMLSyntaxException.cs
- AVElementHelper.cs
- ModuleConfigurationInfo.cs
- RemotingException.cs
- InstallerTypeAttribute.cs
- PaintValueEventArgs.cs
- SystemIPInterfaceStatistics.cs
- VisualStyleRenderer.cs
- GrammarBuilderPhrase.cs
- Registry.cs
- ObjectTag.cs
- SevenBitStream.cs
- ViewPort3D.cs
- WorkflowEnvironment.cs
- BamlLocalizationDictionary.cs
- ExpressionBinding.cs
- PriorityChain.cs
- VisualStyleTypesAndProperties.cs
- DataGridViewRowEventArgs.cs
- RtfNavigator.cs
- WSHttpSecurityElement.cs
- Item.cs
- DomNameTable.cs
- WeakReferenceKey.cs
- sqlstateclientmanager.cs
- ServiceAuthorizationManager.cs
- LocalFileSettingsProvider.cs
- HttpContextBase.cs
- WorkflowShape.cs
- _SingleItemRequestCache.cs
- Brush.cs
- Int32Rect.cs
- ListView.cs
- DesignerRegionCollection.cs
- XPathItem.cs
- ApplicationSettingsBase.cs
- HTMLTextWriter.cs
- TriggerAction.cs
- ThicknessKeyFrameCollection.cs
- FlowDocumentPaginator.cs
- DrawingContext.cs
- MemberPath.cs
- ToolStripContentPanel.cs
- TypeGeneratedEventArgs.cs
- ThaiBuddhistCalendar.cs
- Parameter.cs
- WindowsComboBox.cs
- HtmlGenericControl.cs
- XsltException.cs
- CatchDesigner.xaml.cs
- WebScriptMetadataFormatter.cs
- AutomationIdentifierGuids.cs
- InputLanguageSource.cs
- UserControl.cs
- HttpVersion.cs
- RotateTransform.cs
- DropShadowBitmapEffect.cs
- HeaderedItemsControl.cs
- CompilationUnit.cs
- RequestTimeoutManager.cs
- ColorAnimationUsingKeyFrames.cs
- RuntimeResourceSet.cs
- SpecialNameAttribute.cs
- MatrixCamera.cs
- RequestSecurityTokenResponseCollection.cs
- SmiEventSink.cs
- TransformerConfigurationWizardBase.cs
- XmlCustomFormatter.cs
- TextTreeTextElementNode.cs
- Span.cs
- FileEnumerator.cs
- WorkflowQueuingService.cs
- PassportAuthenticationModule.cs
- ParentQuery.cs
- OleAutBinder.cs
- HttpContextServiceHost.cs
- WasEndpointConfigContainer.cs
- URLIdentityPermission.cs
- DbConnectionPoolGroup.cs
- ElapsedEventArgs.cs
- FormsAuthenticationUser.cs
- WindowsFormsSynchronizationContext.cs