| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- //
- // System.ComponentModel.ExtenderProvidedPropertyAttribute.cs
- //
- // Author:
- // Andreas Nahr ([email protected])
- //
- // (C) 2003 Andreas Nahr
- //
- using System;
- namespace System.ComponentModel
- {
- [AttributeUsage(AttributeTargets.All)]
- public sealed class ExtenderProvidedPropertyAttribute : Attribute
- {
- private PropertyDescriptor extender;
- private IExtenderProvider extenderProvider;
- private Type receiver;
- public ExtenderProvidedPropertyAttribute()
- {
- }
- // Call this method to create a ExtenderProvidedPropertyAttribute and set it's values
- internal static ExtenderProvidedPropertyAttribute CreateAttribute (PropertyDescriptor extenderProperty, IExtenderProvider provider, Type receiverType)
- {
- ExtenderProvidedPropertyAttribute NewAttribute = new ExtenderProvidedPropertyAttribute();
- NewAttribute.extender = extenderProperty;
- NewAttribute.receiver = receiverType;
- NewAttribute.extenderProvider = provider;
- return NewAttribute;
- }
- public PropertyDescriptor ExtenderProperty {
- get {
- return extender;
- }
- }
- public IExtenderProvider Provider {
- get {
- return extenderProvider;
- }
- }
- public Type ReceiverType {
- get {
- return receiver;
- }
- }
- public override bool IsDefaultAttribute()
- {
- // FIXME correct implementation??
- return (extender == null) &&
- (extenderProvider == null) &&
- (receiver == null);
- }
- public override bool Equals (object obj)
- {
- if (!(obj is ExtenderProvidedPropertyAttribute))
- return false;
- if (obj == this)
- return true;
- return ((ExtenderProvidedPropertyAttribute) obj).ExtenderProperty.Equals (extender) &&
- ((ExtenderProvidedPropertyAttribute) obj).Provider.Equals (extenderProvider) &&
- ((ExtenderProvidedPropertyAttribute) obj).ReceiverType.Equals (receiver);
- }
- public override int GetHashCode()
- {
- return extender.GetHashCode() ^ extenderProvider.GetHashCode() ^ receiver.GetHashCode();
- }
- }
- }
|