DesignerAttribute.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. //
  2. // System.ComponentModel.DesignerAttribute.cs
  3. //
  4. // Author:
  5. // Alejandro Sánchez Acosta ([email protected])
  6. // Andreas Nahr ([email protected])
  7. //
  8. // (C) Alejandro Sánchez Acosta
  9. // (C) 2003 Andreas Nahr
  10. //
  11. namespace System.ComponentModel
  12. {
  13. /// <summary>
  14. /// Designer Attribute for classes.
  15. /// </summary>
  16. /// <remarks>
  17. /// </remarks>
  18. [AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface, AllowMultiple = true, Inherited = true)]
  19. public sealed class DesignerAttribute : Attribute
  20. {
  21. private string name;
  22. private string basetypename;
  23. public DesignerAttribute (string designerTypeName)
  24. {
  25. name = designerTypeName;
  26. }
  27. public DesignerAttribute (Type designerType)
  28. : this (designerType.AssemblyQualifiedName)
  29. {
  30. }
  31. public DesignerAttribute (string designerTypeName, Type designerBaseType)
  32. : this (designerTypeName, designerBaseType.AssemblyQualifiedName)
  33. {
  34. }
  35. public DesignerAttribute (Type designerType, Type designerBaseType)
  36. : this (designerType.AssemblyQualifiedName, designerBaseType.AssemblyQualifiedName)
  37. {
  38. }
  39. public DesignerAttribute (string designerTypeName, string designerBaseTypeName)
  40. {
  41. name = designerTypeName;
  42. basetypename = designerBaseTypeName;
  43. }
  44. public string DesignerBaseTypeName {
  45. get {
  46. return basetypename;
  47. }
  48. }
  49. public string DesignerTypeName {
  50. get {
  51. return name;
  52. }
  53. }
  54. public override object TypeId {
  55. get {
  56. return this.GetType ();
  57. }
  58. }
  59. public override bool Equals (object obj)
  60. {
  61. if (!(obj is DesignerAttribute))
  62. return false;
  63. return ((DesignerAttribute) obj).DesignerBaseTypeName.Equals (basetypename) &&
  64. ((DesignerAttribute) obj).DesignerTypeName.Equals (name);
  65. }
  66. public override int GetHashCode ()
  67. {
  68. return string.Concat(name, basetypename).GetHashCode ();
  69. }
  70. }
  71. }