Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataGridViewRowEventArgs.cs
- TypedAsyncResult.cs
- FlowPosition.cs
- StylusPlugin.cs
- AssemblyAttributes.cs
- VirtualizedItemPattern.cs
- SamlConstants.cs
- PropertyConverter.cs
- Internal.cs
- PageWrapper.cs
- PropertySourceInfo.cs
- MetadataArtifactLoaderResource.cs
- ResourceDisplayNameAttribute.cs
- IsolatedStoragePermission.cs
- Assembly.cs
- PositiveTimeSpanValidator.cs
- CredentialCache.cs
- DataShape.cs
- ParserOptions.cs
- Vector3DCollectionConverter.cs
- SelectionUIHandler.cs
- regiisutil.cs
- GetRecipientRequest.cs
- Pens.cs
- CodeTypeMember.cs
- InlineCollection.cs
- MimeTypeMapper.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- IncrementalCompileAnalyzer.cs
- VisualState.cs
- PerformanceCounterPermission.cs
- InternalEnumValidatorAttribute.cs
- UIEndRequest.cs
- RemoteWebConfigurationHostStream.cs
- AccessorTable.cs
- HttpModulesSection.cs
- WebProxyScriptElement.cs
- RelationshipDetailsRow.cs
- IsolatedStorage.cs
- HttpCapabilitiesEvaluator.cs
- BaseTransportHeaders.cs
- MimeWriter.cs
- SessionStateSection.cs
- Pkcs9Attribute.cs
- MULTI_QI.cs
- PersonalizationProvider.cs
- Rule.cs
- bindurihelper.cs
- FastEncoderWindow.cs
- DynamicRendererThreadManager.cs
- XmlMapping.cs
- HashCodeCombiner.cs
- PersonalizationStateQuery.cs
- FixedSchema.cs
- IfAction.cs
- XPathAncestorIterator.cs
- EndpointAddressAugust2004.cs
- ItemsControlAutomationPeer.cs
- CurrencyManager.cs
- TrueReadOnlyCollection.cs
- ListViewTableCell.cs
- ModuleElement.cs
- FixedFindEngine.cs
- Binding.cs
- SqlConnectionFactory.cs
- WebPartCatalogCloseVerb.cs
- SqlErrorCollection.cs
- NonParentingControl.cs
- WorkflowCreationContext.cs
- ServiceEndpointElementCollection.cs
- TagPrefixCollection.cs
- FormsAuthenticationEventArgs.cs
- DeclarationUpdate.cs
- GlyphTypeface.cs
- Quaternion.cs
- ValidatorCompatibilityHelper.cs
- DefaultAssemblyResolver.cs
- KeyedHashAlgorithm.cs
- HtmlTitle.cs
- DefaultTraceListener.cs
- TypeProvider.cs
- RegistryDataKey.cs
- ManagementPath.cs
- RemotingException.cs
- WorkflowItemPresenter.cs
- OdbcConnectionStringbuilder.cs
- ResourceKey.cs
- DataBindingHandlerAttribute.cs
- complextypematerializer.cs
- PersonalizationStateQuery.cs
- WebRequestModuleElement.cs
- ImmComposition.cs
- Identifier.cs
- documentsequencetextview.cs
- OneOf.cs
- WebPartExportVerb.cs
- RecognitionResult.cs
- TemplateColumn.cs
- FixedHighlight.cs
- VirtualPathProvider.cs