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
- HwndHostAutomationPeer.cs
- IFlowDocumentViewer.cs
- EDesignUtil.cs
- EventMap.cs
- MetadataCache.cs
- EntityDataSourceContextCreatedEventArgs.cs
- SqlCacheDependencyDatabaseCollection.cs
- ObjectCacheSettings.cs
- TextElementCollection.cs
- JsonSerializer.cs
- ExtractorMetadata.cs
- Configuration.cs
- FloatUtil.cs
- RealizedColumnsBlock.cs
- BrowserDefinitionCollection.cs
- FixedTextPointer.cs
- HandlerFactoryWrapper.cs
- XmlQuerySequence.cs
- CallbackHandler.cs
- XmlReflectionImporter.cs
- LambdaCompiler.Address.cs
- Avt.cs
- NopReturnReader.cs
- SerializableAuthorizationContext.cs
- DocumentsTrace.cs
- TcpAppDomainProtocolHandler.cs
- TextRenderer.cs
- XmlRootAttribute.cs
- SizeAnimationUsingKeyFrames.cs
- StorageBasedPackageProperties.cs
- TiffBitmapDecoder.cs
- NumericUpDownAccelerationCollection.cs
- Size3D.cs
- ScrollChrome.cs
- ExpressionBuilderCollection.cs
- BreakSafeBase.cs
- BitArray.cs
- BoundConstants.cs
- RotateTransform.cs
- AudioSignalProblemOccurredEventArgs.cs
- CompressionTransform.cs
- UriTemplateMatch.cs
- CodeTypeReferenceCollection.cs
- WaitHandle.cs
- Vector3D.cs
- GPRECT.cs
- PtsContext.cs
- Stack.cs
- RtfToken.cs
- HandlerFactoryWrapper.cs
- FlowDocument.cs
- ReflectTypeDescriptionProvider.cs
- ErrorWebPart.cs
- HttpBrowserCapabilitiesWrapper.cs
- bidPrivateBase.cs
- DateTimeFormatInfo.cs
- NavigationPropertyEmitter.cs
- ConfigurationSectionGroup.cs
- ProjectionPlan.cs
- TabControl.cs
- SqlDataSourceFilteringEventArgs.cs
- ButtonBase.cs
- Context.cs
- XmlCharType.cs
- BindingUtils.cs
- X509Chain.cs
- FilterException.cs
- WebPartEventArgs.cs
- ProviderCommandInfoUtils.cs
- LoadWorkflowAsyncResult.cs
- HttpConfigurationContext.cs
- ConnectionProviderAttribute.cs
- MarginsConverter.cs
- SystemIcmpV6Statistics.cs
- WebPartsSection.cs
- PositiveTimeSpanValidatorAttribute.cs
- RowBinding.cs
- XmlUnspecifiedAttribute.cs
- filewebrequest.cs
- securitymgrsite.cs
- FixedTextView.cs
- ThreadStartException.cs
- RestHandler.cs
- XsltArgumentList.cs
- SqlDependency.cs
- Serializer.cs
- ComNativeDescriptor.cs
- LayoutTableCell.cs
- ToolStripSplitButton.cs
- XamlPointCollectionSerializer.cs
- ApplicationGesture.cs
- WmiEventSink.cs
- SchemaEntity.cs
- EnvironmentPermission.cs
- ParallelTimeline.cs
- HotCommands.cs
- WebBrowserHelper.cs
- ArrayList.cs
- NumberEdit.cs
- UserPreferenceChangedEventArgs.cs