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
- XmlSchemaDatatype.cs
- PackageFilter.cs
- IPEndPoint.cs
- SolidColorBrush.cs
- StrongNameKeyPair.cs
- clipboard.cs
- InlineObject.cs
- SubMenuStyle.cs
- MailAddress.cs
- DataGridViewImageColumn.cs
- HyperLinkField.cs
- DrawingAttributes.cs
- FormsAuthenticationCredentials.cs
- PathSegmentCollection.cs
- NamespaceCollection.cs
- DurableRuntimeValidator.cs
- ServiceDiscoveryBehavior.cs
- DataGridViewCheckBoxColumn.cs
- ListControl.cs
- VariableExpressionConverter.cs
- BrushValueSerializer.cs
- GenerateTemporaryTargetAssembly.cs
- UrlPropertyAttribute.cs
- DispatcherHooks.cs
- Accessors.cs
- ManagedFilter.cs
- Figure.cs
- UnsafeNativeMethods.cs
- NetworkCredential.cs
- InstanceDataCollection.cs
- _SingleItemRequestCache.cs
- PictureBox.cs
- RowToParametersTransformer.cs
- EncodingTable.cs
- StopRoutingHandler.cs
- CharAnimationUsingKeyFrames.cs
- smtpconnection.cs
- sortedlist.cs
- SecurityCapabilities.cs
- datacache.cs
- CompilationLock.cs
- InvokeProviderWrapper.cs
- TypeListConverter.cs
- Logging.cs
- ClassValidator.cs
- _ConnectOverlappedAsyncResult.cs
- Point3DIndependentAnimationStorage.cs
- WizardPanel.cs
- TextEditorMouse.cs
- TypeForwardedToAttribute.cs
- PageParser.cs
- TypeElement.cs
- HyperLink.cs
- ProxyWebPartManager.cs
- XPathAxisIterator.cs
- DeploymentSectionCache.cs
- PartitionResolver.cs
- ReachSerializer.cs
- UnaryNode.cs
- SweepDirectionValidation.cs
- WorkflowViewService.cs
- ScrollBarRenderer.cs
- AnonymousIdentificationSection.cs
- ImageButton.cs
- ListenerElementsCollection.cs
- EndpointPerformanceCounters.cs
- Errors.cs
- PropertySegmentSerializer.cs
- WebConfigurationHostFileChange.cs
- mansign.cs
- DesignSurfaceManager.cs
- Util.cs
- DbProviderFactory.cs
- TracePayload.cs
- WriteableBitmap.cs
- AddInToken.cs
- SystemBrushes.cs
- LogReservationCollection.cs
- DecoderFallback.cs
- ReadonlyMessageFilter.cs
- SQLSingle.cs
- XmlWriterTraceListener.cs
- ThreadExceptionEvent.cs
- EntityCommand.cs
- TemplateBamlRecordReader.cs
- FormClosedEvent.cs
- CapabilitiesRule.cs
- WindowsAuthenticationEventArgs.cs
- RoleManagerSection.cs
- Size.cs
- WsdlInspector.cs
- SocketException.cs
- RadioButton.cs
- RelationshipFixer.cs
- TextParaClient.cs
- ListArgumentProvider.cs
- XmlAnyElementAttribute.cs
- Selection.cs
- BreadCrumbTextConverter.cs
- StopStoryboard.cs