ExtenderProvidedPropertyAttribute.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. //
  2. // System.ComponentModel.ExtenderProvidedPropertyAttribute
  3. //
  4. // Author:
  5. // Andreas Nahr ([email protected])
  6. //
  7. // (C) 2003 Andreas Nahr
  8. //
  9. using System;
  10. namespace System.ComponentModel
  11. {
  12. [MonoTODO ("Some method needed to actually SET some values")]
  13. [AttributeUsage(AttributeTargets.All)]
  14. public sealed class ExtenderProvidedPropertyAttribute : Attribute
  15. {
  16. private PropertyDescriptor extender;
  17. private IExtenderProvider extenderProvider;
  18. private Type receiver;
  19. public ExtenderProvidedPropertyAttribute()
  20. {
  21. }
  22. public PropertyDescriptor ExtenderProperty
  23. {
  24. get
  25. {
  26. return extender;
  27. }
  28. }
  29. public IExtenderProvider Provider
  30. {
  31. get
  32. {
  33. return extenderProvider;
  34. }
  35. }
  36. public Type ReceiverType
  37. {
  38. get
  39. {
  40. return receiver;
  41. }
  42. }
  43. public override bool IsDefaultAttribute()
  44. {
  45. // FIXME correct implementation??
  46. return (extender == null) &&
  47. (extenderProvider == null) &&
  48. (receiver == null);
  49. }
  50. public override bool Equals (object obj)
  51. {
  52. if (!(obj is ExtenderProvidedPropertyAttribute))
  53. return false;
  54. if (obj == this)
  55. return true;
  56. return ((ExtenderProvidedPropertyAttribute) obj).ExtenderProperty.Equals (extender) &&
  57. ((ExtenderProvidedPropertyAttribute) obj).Provider.Equals (extenderProvider) &&
  58. ((ExtenderProvidedPropertyAttribute) obj).ReceiverType.Equals (receiver);
  59. }
  60. public override int GetHashCode()
  61. {
  62. // FIXME correct implementation??
  63. return base.GetHashCode();
  64. }
  65. }
  66. }