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
- BindMarkupExtensionSerializer.cs
- DuplicateWaitObjectException.cs
- SqlComparer.cs
- TemplateColumn.cs
- Matrix.cs
- AsyncDataRequest.cs
- MultiByteCodec.cs
- cache.cs
- XPathAncestorIterator.cs
- EnumUnknown.cs
- SqlDataReader.cs
- HttpCookieCollection.cs
- JsonServiceDocumentSerializer.cs
- CloudCollection.cs
- UIAgentInitializationException.cs
- Part.cs
- UnsafeNativeMethods.cs
- BuildResultCache.cs
- EditorPart.cs
- PermissionSetEnumerator.cs
- SimpleWorkerRequest.cs
- HierarchicalDataTemplate.cs
- EditorPartCollection.cs
- CodeStatementCollection.cs
- webclient.cs
- NotCondition.cs
- DataControlButton.cs
- _Events.cs
- DictionaryContent.cs
- CompressionTracing.cs
- NegotiateStream.cs
- TextComposition.cs
- DbConnectionInternal.cs
- ZipIOExtraFieldPaddingElement.cs
- SocketCache.cs
- ConfigXmlElement.cs
- NoResizeSelectionBorderGlyph.cs
- ChtmlPageAdapter.cs
- BrowserCapabilitiesCompiler.cs
- CustomAttributeBuilder.cs
- SemanticBasicElement.cs
- DataGridState.cs
- HttpCacheVary.cs
- DefaultShape.cs
- SynchronizedInputPattern.cs
- BindingWorker.cs
- Vector3DKeyFrameCollection.cs
- SafeIUnknown.cs
- FormView.cs
- ClaimTypeElement.cs
- OuterGlowBitmapEffect.cs
- BatchParser.cs
- CodeTypeDelegate.cs
- StateManagedCollection.cs
- InlinedLocationReference.cs
- OutputCacheProfile.cs
- DebugInfoGenerator.cs
- HostProtectionException.cs
- SynchronizedDisposablePool.cs
- ConfigurationException.cs
- TypeValidationEventArgs.cs
- WindowsTokenRoleProvider.cs
- KeysConverter.cs
- ResourcesChangeInfo.cs
- PrintEvent.cs
- SqlVersion.cs
- SubpageParaClient.cs
- DataTableExtensions.cs
- WebPartConnectionsConfigureVerb.cs
- ArrangedElement.cs
- ConnectionStringsSection.cs
- _ChunkParse.cs
- UnaryNode.cs
- WebResponse.cs
- DynamicDataResources.Designer.cs
- QilIterator.cs
- ArrayExtension.cs
- GeneratedView.cs
- DetailsViewUpdatedEventArgs.cs
- VarInfo.cs
- ComponentChangingEvent.cs
- HttpWebRequestElement.cs
- PublisherMembershipCondition.cs
- DataList.cs
- CodeDOMUtility.cs
- CheckBoxBaseAdapter.cs
- DataGridTablesFactory.cs
- SystemException.cs
- XmlSchemaInfo.cs
- EnumType.cs
- SeekableReadStream.cs
- PublisherIdentityPermission.cs
- elementinformation.cs
- WebAdminConfigurationHelper.cs
- GenerateScriptTypeAttribute.cs
- ServiceBusyException.cs
- TreeNodeEventArgs.cs
- Axis.cs
- SQLSingleStorage.cs
- ResourceType.cs