Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / 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. 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
- SettingsAttributeDictionary.cs
- RawStylusSystemGestureInputReport.cs
- hebrewshape.cs
- InputLanguage.cs
- ValidatorUtils.cs
- SHA384Managed.cs
- NameTable.cs
- NavigationExpr.cs
- ToolBarButtonDesigner.cs
- XPathMultyIterator.cs
- NonBatchDirectoryCompiler.cs
- XmlUtf8RawTextWriter.cs
- ArgumentElement.cs
- ApplicationServicesHostFactory.cs
- XPathBinder.cs
- OrderedDictionary.cs
- InputLanguageSource.cs
- DataGridViewRowCancelEventArgs.cs
- _NtlmClient.cs
- XmlDocumentFieldSchema.cs
- BuildProvidersCompiler.cs
- ResourceSet.cs
- DSGeneratorProblem.cs
- SourceElementsCollection.cs
- ValidationSummary.cs
- HtmlTableRow.cs
- GlyphTypeface.cs
- KeyManager.cs
- LocatorBase.cs
- CheckBoxAutomationPeer.cs
- ValidatingReaderNodeData.cs
- FastEncoder.cs
- Drawing.cs
- SettingsProperty.cs
- XsdCachingReader.cs
- WindowsIPAddress.cs
- WSFederationHttpBindingCollectionElement.cs
- Rect3D.cs
- TextDataBindingHandler.cs
- LinkButton.cs
- SerializationInfoEnumerator.cs
- xmlfixedPageInfo.cs
- TextParentUndoUnit.cs
- ScriptReference.cs
- UserMapPath.cs
- IdentityHolder.cs
- ConfigurationLockCollection.cs
- IntellisenseTextBox.designer.cs
- VisualStyleElement.cs
- CustomErrorsSection.cs
- SQLInt64.cs
- SelectionListDesigner.cs
- BulletChrome.cs
- ConfigXmlSignificantWhitespace.cs
- IisTraceListener.cs
- MetadataUtilsSmi.cs
- UnicodeEncoding.cs
- EntityTemplateUserControl.cs
- TransactionFlowBindingElement.cs
- HostProtectionException.cs
- DataServiceStreamProviderWrapper.cs
- XmlCountingReader.cs
- DataGridViewImageColumn.cs
- Pair.cs
- MenuItem.cs
- AuthorizationPolicyTypeElement.cs
- SessionSwitchEventArgs.cs
- ContentDesigner.cs
- UnsafeNativeMethods.cs
- Context.cs
- CorrelationToken.cs
- Number.cs
- RestHandlerFactory.cs
- SmiEventSink_Default.cs
- WindowsPrincipal.cs
- AuthenticationService.cs
- WindowsStreamSecurityUpgradeProvider.cs
- URL.cs
- ReadOnlyDataSourceView.cs
- BounceEase.cs
- EventDescriptorCollection.cs
- FormCollection.cs
- Document.cs
- SspiWrapper.cs
- FunctionImportMapping.ReturnTypeRenameMapping.cs
- ExcCanonicalXml.cs
- DESCryptoServiceProvider.cs
- DispatcherObject.cs
- ScalarOps.cs
- ServiceModelInstallComponent.cs
- HttpCacheVary.cs
- CodeCatchClauseCollection.cs
- DispatcherObject.cs
- AnimationClock.cs
- RawMouseInputReport.cs
- SamlAdvice.cs
- ZipFileInfoCollection.cs
- SecurityCriticalDataForSet.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- DataGridViewTopLeftHeaderCell.cs