Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- EdmType.cs
- AnonymousIdentificationModule.cs
- Tracking.cs
- SystemResourceKey.cs
- PointAnimation.cs
- CatalogZoneBase.cs
- KnownAssemblyEntry.cs
- ExpressionBindings.cs
- LayoutTableCell.cs
- BCLDebug.cs
- MetadataItemEmitter.cs
- SectionXmlInfo.cs
- WebPartTransformerCollection.cs
- Span.cs
- UrlAuthFailureHandler.cs
- PermissionAttributes.cs
- Color.cs
- LockCookie.cs
- HatchBrush.cs
- AppDomainProtocolHandler.cs
- ConnectionInterfaceCollection.cs
- ThrowHelper.cs
- Attributes.cs
- SqlServices.cs
- StateMachineDesignerPaint.cs
- FixedDocument.cs
- Membership.cs
- MsmqHostedTransportManager.cs
- PrePostDescendentsWalker.cs
- Substitution.cs
- Nullable.cs
- CommonRemoteMemoryBlock.cs
- OraclePermissionAttribute.cs
- XamlVector3DCollectionSerializer.cs
- LostFocusEventManager.cs
- AssociationSet.cs
- RegexNode.cs
- SelectedGridItemChangedEvent.cs
- Label.cs
- EditingCoordinator.cs
- RangeBaseAutomationPeer.cs
- ExpressionNode.cs
- RepeaterItemEventArgs.cs
- ConnectionOrientedTransportChannelListener.cs
- StatusBarItemAutomationPeer.cs
- EncryptedData.cs
- BehaviorDragDropEventArgs.cs
- DataGridViewColumn.cs
- ProtectedProviderSettings.cs
- ReadOnlyCollection.cs
- QilChoice.cs
- ObjectListDataBindEventArgs.cs
- RealProxy.cs
- ContainerAction.cs
- XmlValidatingReader.cs
- HttpConfigurationContext.cs
- AffineTransform3D.cs
- DesignerSerializationVisibilityAttribute.cs
- DataGridViewColumnStateChangedEventArgs.cs
- GenericWebPart.cs
- WebSysDescriptionAttribute.cs
- FaultDesigner.cs
- WhereQueryOperator.cs
- PasswordPropertyTextAttribute.cs
- WebColorConverter.cs
- ProviderSettingsCollection.cs
- ColumnCollection.cs
- XmlSignatureManifest.cs
- WebPartEventArgs.cs
- EastAsianLunisolarCalendar.cs
- ExeContext.cs
- DataGridViewColumn.cs
- PersonalizationStateQuery.cs
- SqlBulkCopy.cs
- SelectedDatesCollection.cs
- DispatchWrapper.cs
- LinkConverter.cs
- AccessDataSourceView.cs
- HistoryEventArgs.cs
- ServiceOperationParameter.cs
- OciLobLocator.cs
- MappingModelBuildProvider.cs
- LiteralSubsegment.cs
- XmlSchemaAttributeGroup.cs
- DataSvcMapFile.cs
- HexParser.cs
- ClientBuildManager.cs
- RequiredFieldValidator.cs
- DateTimeUtil.cs
- TypefaceCollection.cs
- DrawingAttributesDefaultValueFactory.cs
- SqlParameter.cs
- KeyToListMap.cs
- DataObjectSettingDataEventArgs.cs
- RegisteredArrayDeclaration.cs
- BoundField.cs
- XsltOutput.cs
- EditorPartChrome.cs
- SharedHttpsTransportManager.cs
- TrackingCondition.cs