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
- CommonObjectSecurity.cs
- ProviderSettings.cs
- DesignerCalendarAdapter.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- Decorator.cs
- XmlUTF8TextWriter.cs
- SchemaContext.cs
- XmlTextReaderImpl.cs
- ADMembershipProvider.cs
- ReflectionUtil.cs
- ListViewHitTestInfo.cs
- DbProviderFactories.cs
- Barrier.cs
- WebRequestModuleElementCollection.cs
- XmlName.cs
- RoutingService.cs
- NullableDoubleMinMaxAggregationOperator.cs
- ModifierKeysValueSerializer.cs
- SchemaImporter.cs
- RegexInterpreter.cs
- GlobalAllocSafeHandle.cs
- MimeXmlImporter.cs
- MergeFilterQuery.cs
- KeyInterop.cs
- KnownTypesProvider.cs
- CompileXomlTask.cs
- GlyphRunDrawing.cs
- PermissionAttributes.cs
- DSGeneratorProblem.cs
- LongValidatorAttribute.cs
- WorkflowStateRollbackService.cs
- HyperLinkColumn.cs
- ScrollableControl.cs
- SchemaImporterExtensionElementCollection.cs
- Error.cs
- FixedSOMGroup.cs
- ToolStripOverflow.cs
- ClientSponsor.cs
- IResourceProvider.cs
- RegistryPermission.cs
- GridViewColumnCollectionChangedEventArgs.cs
- TextSelectionHighlightLayer.cs
- DrawListViewSubItemEventArgs.cs
- ServiceModelConfigurationSectionGroup.cs
- MenuItem.cs
- QueryCacheManager.cs
- ConfigXmlText.cs
- ItemCheckEvent.cs
- unsafenativemethodsother.cs
- Point3DCollectionValueSerializer.cs
- DrawingContextWalker.cs
- WindowsAltTab.cs
- NetMsmqBindingElement.cs
- InplaceBitmapMetadataWriter.cs
- XmlSequenceWriter.cs
- XmlCodeExporter.cs
- CollectionConverter.cs
- DES.cs
- TraceSection.cs
- PagedDataSource.cs
- PointCollection.cs
- XamlFilter.cs
- Identity.cs
- DoubleConverter.cs
- WebPartMenuStyle.cs
- WinFormsComponentEditor.cs
- CodeDomDecompiler.cs
- RestHandlerFactory.cs
- TableRowGroup.cs
- TextHidden.cs
- GridSplitter.cs
- SharedPersonalizationStateInfo.cs
- ConsumerConnectionPoint.cs
- CheckBox.cs
- CacheDependency.cs
- TraceUtility.cs
- SafeViewOfFileHandle.cs
- DataSourceDescriptorCollection.cs
- GradientStopCollection.cs
- DataControlFieldHeaderCell.cs
- CompilerError.cs
- InertiaTranslationBehavior.cs
- XsltQilFactory.cs
- VolatileResourceManager.cs
- RawUIStateInputReport.cs
- DiscreteKeyFrames.cs
- ContentIterators.cs
- EncoderParameters.cs
- Label.cs
- RtfToken.cs
- WeakHashtable.cs
- _IPv6Address.cs
- RootCodeDomSerializer.cs
- TemplatePropertyEntry.cs
- DoubleLinkList.cs
- PopupRoot.cs
- Rotation3DAnimation.cs
- JpegBitmapDecoder.cs
- CodeCommentStatement.cs
- UIElementHelper.cs