Code:
/ 4.0 / 4.0 / 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. 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
- DirectoryObjectSecurity.cs
- ContainerParagraph.cs
- PopOutPanel.cs
- AppSettingsSection.cs
- MultilineStringConverter.cs
- CodeDefaultValueExpression.cs
- WS2007FederationHttpBindingElement.cs
- SqlDataReader.cs
- CompoundFileIOPermission.cs
- TransferRequestHandler.cs
- AttributeConverter.cs
- RectAnimationClockResource.cs
- DbgUtil.cs
- EventDescriptorCollection.cs
- ServiceModelStringsVersion1.cs
- SaveFileDialogDesigner.cs
- TrustLevelCollection.cs
- XmlValidatingReaderImpl.cs
- SingleAnimationBase.cs
- ReliableSessionElement.cs
- RootProjectionNode.cs
- ShaderEffect.cs
- UIPermission.cs
- FullTextBreakpoint.cs
- ConstantSlot.cs
- Properties.cs
- SerializationObjectManager.cs
- OracleDataAdapter.cs
- Char.cs
- MultipartIdentifier.cs
- SoapSchemaImporter.cs
- TTSEvent.cs
- CatalogPartChrome.cs
- WebHttpEndpointElement.cs
- Tile.cs
- RotateTransform.cs
- ArraySortHelper.cs
- MarkupExtensionReturnTypeAttribute.cs
- LineServicesCallbacks.cs
- Rule.cs
- OleDbConnectionFactory.cs
- WriteFileContext.cs
- ValidatorCompatibilityHelper.cs
- Bold.cs
- UnsafeNativeMethods.cs
- SchemaNamespaceManager.cs
- IConvertible.cs
- RowBinding.cs
- SolidBrush.cs
- DataReaderContainer.cs
- ProxyWebPartManager.cs
- ThreadSafeList.cs
- ProgressiveCrcCalculatingStream.cs
- ToolStripOverflowButton.cs
- ControlIdConverter.cs
- XmlSchemaSimpleContentRestriction.cs
- ButtonFlatAdapter.cs
- CurrentChangingEventManager.cs
- TemplateContent.cs
- Parallel.cs
- Int32Storage.cs
- LinkLabel.cs
- AndMessageFilterTable.cs
- ProtocolsConfiguration.cs
- SQLByteStorage.cs
- Pen.cs
- XmlSchemaAny.cs
- MissingFieldException.cs
- ResXResourceSet.cs
- ButtonBaseAutomationPeer.cs
- ModelVisual3D.cs
- ContainerParaClient.cs
- ListBindableAttribute.cs
- altserialization.cs
- ToolStripDropTargetManager.cs
- FileStream.cs
- Error.cs
- TableStyle.cs
- CodeObjectCreateExpression.cs
- BooleanAnimationUsingKeyFrames.cs
- LocationUpdates.cs
- UnsafeNativeMethods.cs
- ClientCultureInfo.cs
- AnimationStorage.cs
- CompareValidator.cs
- FontStretchConverter.cs
- QilLiteral.cs
- AdCreatedEventArgs.cs
- Panel.cs
- DragAssistanceManager.cs
- DirectoryInfo.cs
- ToolboxService.cs
- DataColumnPropertyDescriptor.cs
- OracleTransaction.cs
- EncryptedKey.cs
- EdmSchemaError.cs
- DictionaryEntry.cs
- ForwardPositionQuery.cs
- ModelVisual3D.cs
- IPHostEntry.cs