Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Base / System / ComponentModel / PropertyFilterAttribute.cs / 1305600 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SafeTokenHandle.cs
- WindowExtensionMethods.cs
- exports.cs
- Exceptions.cs
- JobCollate.cs
- CallbackValidatorAttribute.cs
- StackBuilderSink.cs
- FrameworkElementAutomationPeer.cs
- WebPartTransformerAttribute.cs
- SqlCacheDependency.cs
- MenuItemAutomationPeer.cs
- ProviderUtil.cs
- SessionStateItemCollection.cs
- ProcessHostServerConfig.cs
- RowBinding.cs
- MessageDroppedTraceRecord.cs
- ObjectDataSourceMethodEditor.cs
- SkipStoryboardToFill.cs
- StringArrayConverter.cs
- TrustManagerMoreInformation.cs
- DependencyObjectCodeDomSerializer.cs
- MenuAdapter.cs
- BufferModeSettings.cs
- TileModeValidation.cs
- DesignTimeType.cs
- DispatcherSynchronizationContext.cs
- DataGridViewRowEventArgs.cs
- CmsUtils.cs
- SimpleHandlerFactory.cs
- CheckedPointers.cs
- SetterTriggerConditionValueConverter.cs
- XmlElementAttribute.cs
- PasswordRecovery.cs
- GridViewRowEventArgs.cs
- PaintValueEventArgs.cs
- CompareInfo.cs
- Message.cs
- DataRelationCollection.cs
- WebPartUtil.cs
- CatchDesigner.xaml.cs
- AssemblyCache.cs
- CodeSpit.cs
- GridViewRow.cs
- VariableAction.cs
- SoapMessage.cs
- StatusStrip.cs
- FileSystemWatcher.cs
- KeyConverter.cs
- SqlCacheDependencyDatabaseCollection.cs
- NotifyCollectionChangedEventArgs.cs
- TextBoxBase.cs
- Qualifier.cs
- StatusBar.cs
- SoapElementAttribute.cs
- PassportAuthenticationEventArgs.cs
- AppSettingsExpressionEditor.cs
- BinHexEncoding.cs
- CollectionEditor.cs
- ProcessRequestAsyncResult.cs
- TransportationConfigurationTypeInstallComponent.cs
- TransformerInfoCollection.cs
- TextOptions.cs
- WebServiceEnumData.cs
- Identifier.cs
- GlobalDataBindingHandler.cs
- coordinator.cs
- Cursor.cs
- Literal.cs
- BitStack.cs
- AbstractExpressions.cs
- MeasureItemEvent.cs
- HttpStreamMessageEncoderFactory.cs
- TemplateApplicationHelper.cs
- TableAdapterManagerGenerator.cs
- MenuItemBinding.cs
- BindingExpressionBase.cs
- DateTimeConverter2.cs
- TextElementCollectionHelper.cs
- MissingMethodException.cs
- TraceHandlerErrorFormatter.cs
- FontWeights.cs
- RenderTargetBitmap.cs
- CSharpCodeProvider.cs
- EntitySetRetriever.cs
- BatchParser.cs
- UnSafeCharBuffer.cs
- ValidationErrorCollection.cs
- TypefaceMap.cs
- VisualProxy.cs
- EntityDataSourceDataSelectionPanel.cs
- SafeRightsManagementEnvironmentHandle.cs
- ScriptReferenceBase.cs
- ListBoxItemAutomationPeer.cs
- SocketException.cs
- InspectionWorker.cs
- TakeQueryOptionExpression.cs
- ClientTarget.cs
- EntityModelSchemaGenerator.cs
- BitmapEffectrendercontext.cs
- BindingListCollectionView.cs