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
- ResourceManagerWrapper.cs
- XhtmlBasicCommandAdapter.cs
- Collection.cs
- InternalConfigSettingsFactory.cs
- __ConsoleStream.cs
- UriParserTemplates.cs
- OutputCacheProfileCollection.cs
- IndentedWriter.cs
- SchemaAttDef.cs
- Input.cs
- AuthenticationService.cs
- CrossContextChannel.cs
- FileLevelControlBuilderAttribute.cs
- IdentityManager.cs
- WebConfigurationManager.cs
- HorizontalAlignConverter.cs
- MemberRelationshipService.cs
- Bold.cs
- SafeFileHandle.cs
- EmptyControlCollection.cs
- SharedStream.cs
- BuilderPropertyEntry.cs
- MissingSatelliteAssemblyException.cs
- ByeMessageApril2005.cs
- MultiByteCodec.cs
- ValueProviderWrapper.cs
- NetMsmqBinding.cs
- RsaSecurityToken.cs
- KoreanCalendar.cs
- XmlWellformedWriter.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- PackagePartCollection.cs
- HashRepartitionEnumerator.cs
- Rule.cs
- ButtonStandardAdapter.cs
- XmlAttribute.cs
- NameValueConfigurationElement.cs
- PropertyEmitter.cs
- ListItemCollection.cs
- Root.cs
- TextInfo.cs
- TableParagraph.cs
- ConfigurationManagerInternalFactory.cs
- MarginCollapsingState.cs
- AccessViolationException.cs
- DialogResultConverter.cs
- TickBar.cs
- DurableMessageDispatchInspector.cs
- EventPrivateKey.cs
- RemotingServices.cs
- AllMembershipCondition.cs
- ToolStripScrollButton.cs
- EndpointInstanceProvider.cs
- UniqueSet.cs
- ClientUtils.cs
- TextPointerBase.cs
- WebServiceFault.cs
- ConfigurationException.cs
- XmlComplianceUtil.cs
- SqlPersistenceWorkflowInstanceDescription.cs
- SerializationInfoEnumerator.cs
- IteratorFilter.cs
- TreeNodeCollectionEditor.cs
- EventDescriptorCollection.cs
- SemanticResultValue.cs
- Wizard.cs
- InheritanceContextChangedEventManager.cs
- BigInt.cs
- PrimitiveXmlSerializers.cs
- ComPlusServiceHost.cs
- IPPacketInformation.cs
- LinqDataSourceInsertEventArgs.cs
- NameTable.cs
- AlternationConverter.cs
- Thumb.cs
- XmlExceptionHelper.cs
- PrePostDescendentsWalker.cs
- LockCookie.cs
- ErrorCodes.cs
- PersistenceTypeAttribute.cs
- XmlSchemaInfo.cs
- login.cs
- EntityDataSourceDataSelectionPanel.cs
- InertiaExpansionBehavior.cs
- BoolLiteral.cs
- RegexWorker.cs
- MappingModelBuildProvider.cs
- ToolStripItemBehavior.cs
- ProcessRequestAsyncResult.cs
- Comparer.cs
- SmiRequestExecutor.cs
- TransformGroup.cs
- DataSourceSelectArguments.cs
- EntityDataSourceEntityTypeFilterItem.cs
- WebPartConnectionsCloseVerb.cs
- HandlerFactoryCache.cs
- ComponentRenameEvent.cs
- CustomAttributeBuilder.cs
- TypeElementCollection.cs
- COM2PropertyDescriptor.cs