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
- QueryContinueDragEvent.cs
- PrivateFontCollection.cs
- HtmlDocument.cs
- StateFinalizationDesigner.cs
- Table.cs
- Transform.cs
- Missing.cs
- IDQuery.cs
- EdgeProfileValidation.cs
- DecimalSumAggregationOperator.cs
- Graph.cs
- InfoCardArgumentException.cs
- WebControlsSection.cs
- UntrustedRecipientException.cs
- TraceHwndHost.cs
- DataGridViewHitTestInfo.cs
- JpegBitmapEncoder.cs
- StructuralType.cs
- FixedTextBuilder.cs
- DebugView.cs
- ErrorStyle.cs
- DataGridViewElement.cs
- CodeTypeReference.cs
- ReferenceConverter.cs
- ViewService.cs
- MultiSelector.cs
- InternalResources.cs
- Formatter.cs
- SignatureHelper.cs
- UxThemeWrapper.cs
- LockedAssemblyCache.cs
- TraceRecords.cs
- PrintingPermissionAttribute.cs
- RelationshipDetailsRow.cs
- DbgUtil.cs
- streamingZipPartStream.cs
- WebPartConnectionsConnectVerb.cs
- DataServiceExpressionVisitor.cs
- CultureInfo.cs
- RootBrowserWindowProxy.cs
- RequestValidator.cs
- HttpRuntime.cs
- PropertyOverridesDialog.cs
- ListViewDeleteEventArgs.cs
- CheckBoxField.cs
- XmlCharCheckingReader.cs
- OptimalTextSource.cs
- AssociationTypeEmitter.cs
- DocumentPaginator.cs
- TextDecoration.cs
- ActionFrame.cs
- Primitive.cs
- XsltArgumentList.cs
- TableRowGroup.cs
- SqlProcedureAttribute.cs
- NavigationCommands.cs
- Misc.cs
- Encoder.cs
- AddressHeaderCollection.cs
- PropertyExpression.cs
- _Semaphore.cs
- Module.cs
- Keyboard.cs
- XmlSchemaSet.cs
- NonBatchDirectoryCompiler.cs
- WebInvokeAttribute.cs
- HtmlShimManager.cs
- XmlSerializerSection.cs
- ProcessHostServerConfig.cs
- BevelBitmapEffect.cs
- HttpCookiesSection.cs
- ConvertBinder.cs
- CriticalExceptions.cs
- WindowsSpinner.cs
- RegexInterpreter.cs
- FastEncoderWindow.cs
- WebServiceMethodData.cs
- RegexRunnerFactory.cs
- Brushes.cs
- ListBoxItem.cs
- Schema.cs
- DocumentPageViewAutomationPeer.cs
- WpfMemberInvoker.cs
- VideoDrawing.cs
- PathTooLongException.cs
- PropertiesTab.cs
- ResXBuildProvider.cs
- CodeMemberField.cs
- HtmlCalendarAdapter.cs
- ButtonBaseAutomationPeer.cs
- SafeNativeMethods.cs
- CodeAccessSecurityEngine.cs
- TdsValueSetter.cs
- BuildProviderAppliesToAttribute.cs
- CopyEncoder.cs
- LookupBindingPropertiesAttribute.cs
- XmlReflectionMember.cs
- TreeNode.cs
- Int32CollectionConverter.cs
- MemberDescriptor.cs