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
- SslStreamSecurityUpgradeProvider.cs
- CharacterMetricsDictionary.cs
- SchemaCollectionPreprocessor.cs
- LowerCaseStringConverter.cs
- WebPartMovingEventArgs.cs
- ConfigurationValues.cs
- BamlLocalizer.cs
- MachineKeyValidationConverter.cs
- TextEditorTables.cs
- Helper.cs
- ArrayEditor.cs
- ConfigXmlWhitespace.cs
- SearchExpression.cs
- Registry.cs
- BoundField.cs
- AttachedPropertyMethodSelector.cs
- NativeCompoundFileAPIs.cs
- ToolBar.cs
- Polyline.cs
- SecurityUtils.cs
- ImageMetadata.cs
- ImageField.cs
- CustomValidator.cs
- UnsafeNativeMethods.cs
- LineServicesRun.cs
- ValidationResult.cs
- CachingHintValidation.cs
- ExcCanonicalXml.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- UTF32Encoding.cs
- DataDocumentXPathNavigator.cs
- TraceLog.cs
- __TransparentProxy.cs
- SqlGenerator.cs
- DiagnosticsConfiguration.cs
- Token.cs
- ProcessThread.cs
- TreeViewAutomationPeer.cs
- ApplicationGesture.cs
- ColumnMapProcessor.cs
- Renderer.cs
- CompilerGlobalScopeAttribute.cs
- ScriptRef.cs
- InsufficientExecutionStackException.cs
- AutomationProperties.cs
- SafeLocalMemHandle.cs
- XmlStreamStore.cs
- CacheMode.cs
- Claim.cs
- RectKeyFrameCollection.cs
- SqlResolver.cs
- Label.cs
- PageStatePersister.cs
- ReachPageContentCollectionSerializer.cs
- DataBoundLiteralControl.cs
- NullExtension.cs
- PointLightBase.cs
- updatecommandorderer.cs
- NativeCompoundFileAPIs.cs
- srgsitem.cs
- TextFragmentEngine.cs
- QilPatternFactory.cs
- HtmlTableRow.cs
- ReachPageContentSerializerAsync.cs
- NavigationPropertyAccessor.cs
- XsdDataContractExporter.cs
- AdjustableArrowCap.cs
- CellPartitioner.cs
- ResourceReferenceExpressionConverter.cs
- DragDrop.cs
- UpdateTranslator.cs
- ScrollEvent.cs
- EncodingTable.cs
- CodeDOMUtility.cs
- MethodToken.cs
- StructuredTypeInfo.cs
- FontNamesConverter.cs
- MetadataArtifactLoader.cs
- Pkcs7Recipient.cs
- ObjectResult.cs
- DataGridCellItemAutomationPeer.cs
- MsmqBindingBase.cs
- PointCollectionValueSerializer.cs
- Type.cs
- Vector3D.cs
- EnumerationRangeValidationUtil.cs
- CodePageEncoding.cs
- Group.cs
- ToolStripItemEventArgs.cs
- NetMsmqSecurityMode.cs
- SelectedCellsChangedEventArgs.cs
- ConfigXmlDocument.cs
- CollectionViewProxy.cs
- HttpDigestClientCredential.cs
- ITreeGenerator.cs
- SimpleLine.cs
- TransportSecurityProtocol.cs
- DefaultEvaluationContext.cs
- RequestCache.cs
- ConfigurationSettings.cs