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
- RemotingConfigParser.cs
- DataBinder.cs
- FilteredDataSetHelper.cs
- MergeFilterQuery.cs
- Predicate.cs
- UnSafeCharBuffer.cs
- ProfileParameter.cs
- ModelTreeManager.cs
- ControlCachePolicy.cs
- UpdateProgress.cs
- safex509handles.cs
- PenLineCapValidation.cs
- DirectoryInfo.cs
- GlyphCache.cs
- HexParser.cs
- InputDevice.cs
- RegexCapture.cs
- UnknownBitmapDecoder.cs
- SqlCacheDependencyDatabaseCollection.cs
- BrowserCapabilitiesFactory35.cs
- Transform.cs
- ZipIOModeEnforcingStream.cs
- DeferredTextReference.cs
- StorageSetMapping.cs
- TraceFilter.cs
- XmlTypeMapping.cs
- PathHelper.cs
- VirtualDirectoryMappingCollection.cs
- ObjectRef.cs
- FileLoadException.cs
- MILUtilities.cs
- OSEnvironmentHelper.cs
- EditorPartChrome.cs
- PartDesigner.cs
- PageSetupDialog.cs
- EventRoute.cs
- ImageBrush.cs
- CompressStream.cs
- CLRBindingWorker.cs
- PrintingPermission.cs
- RtfToXamlLexer.cs
- SynchronizedPool.cs
- DeobfuscatingStream.cs
- _SingleItemRequestCache.cs
- ClientTargetCollection.cs
- TextContainerChangeEventArgs.cs
- updateconfighost.cs
- RetrieveVirtualItemEventArgs.cs
- HttpModulesSection.cs
- AutoCompleteStringCollection.cs
- FtpWebResponse.cs
- _AutoWebProxyScriptEngine.cs
- GenericIdentity.cs
- ElementHost.cs
- ObjectContext.cs
- ConsumerConnectionPoint.cs
- MessageBox.cs
- PipelineModuleStepContainer.cs
- RemotingAttributes.cs
- ByteViewer.cs
- MgmtConfigurationRecord.cs
- AssociationType.cs
- CheckBoxPopupAdapter.cs
- EndPoint.cs
- LaxModeSecurityHeaderElementInferenceEngine.cs
- ParserContext.cs
- ManagedWndProcTracker.cs
- HtmlShim.cs
- LogReserveAndAppendState.cs
- X509Extension.cs
- TextBounds.cs
- HtmlInputRadioButton.cs
- TypeElementCollection.cs
- WebPartTracker.cs
- MouseActionConverter.cs
- FilteredDataSetHelper.cs
- LinkButton.cs
- RoutedEventConverter.cs
- IInstanceTable.cs
- InternalConfigSettingsFactory.cs
- MetadataArtifactLoaderFile.cs
- SmiMetaDataProperty.cs
- ModelItemImpl.cs
- TextOnlyOutput.cs
- DbLambda.cs
- SHA1.cs
- DbTransaction.cs
- StateMachine.cs
- PageAction.cs
- TextElementEnumerator.cs
- FileDialogCustomPlacesCollection.cs
- TableCellAutomationPeer.cs
- CodeTypeDelegate.cs
- RecordManager.cs
- RSAPKCS1SignatureFormatter.cs
- StylusTip.cs
- DesignerProperties.cs
- Module.cs
- sqlpipe.cs
- DNS.cs