暫無描述
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

SerieDataExtraComponentAttribute.cs 2.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. using System;
  2. using System.Collections.Generic;
  3. namespace XCharts.Runtime
  4. {
  5. [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
  6. public sealed class SerieDataExtraComponentAttribute : Attribute
  7. {
  8. public readonly List<Type> types = new List<Type>();
  9. public SerieDataExtraComponentAttribute()
  10. { }
  11. public SerieDataExtraComponentAttribute(Type type1)
  12. {
  13. AddType(type1);
  14. }
  15. public SerieDataExtraComponentAttribute(Type type1, Type type2)
  16. {
  17. AddType(type1);
  18. AddType(type2);
  19. }
  20. public SerieDataExtraComponentAttribute(Type type1, Type type2, Type type3)
  21. {
  22. AddType(type1);
  23. AddType(type2);
  24. AddType(type3);
  25. }
  26. public SerieDataExtraComponentAttribute(Type type1, Type type2, Type type3, Type type4)
  27. {
  28. AddType(type1);
  29. AddType(type2);
  30. AddType(type3);
  31. AddType(type4);
  32. }
  33. public SerieDataExtraComponentAttribute(Type type1, Type type2, Type type3, Type type4, Type type5)
  34. {
  35. AddType(type1);
  36. AddType(type2);
  37. AddType(type3);
  38. AddType(type4);
  39. AddType(type5);
  40. }
  41. public SerieDataExtraComponentAttribute(Type type1, Type type2, Type type3, Type type4, Type type5, Type type6)
  42. {
  43. AddType(type1);
  44. AddType(type2);
  45. AddType(type3);
  46. AddType(type4);
  47. AddType(type5);
  48. AddType(type6);
  49. }
  50. public SerieDataExtraComponentAttribute(Type type1, Type type2, Type type3, Type type4, Type type5, Type type6, Type type7)
  51. {
  52. AddType(type1);
  53. AddType(type2);
  54. AddType(type3);
  55. AddType(type4);
  56. AddType(type5);
  57. AddType(type6);
  58. AddType(type7);
  59. }
  60. private void AddType(Type type)
  61. {
  62. if (!SerieData.extraComponentMap.ContainsKey(type))
  63. throw new ArgumentException("SerieData not support extra component:" + type);
  64. types.Add(type);
  65. }
  66. public bool Contains<T>() where T : ISerieExtraComponent
  67. {
  68. return Contains(typeof(T));
  69. }
  70. public bool Contains(Type type)
  71. {
  72. return types.Contains(type);
  73. }
  74. }
  75. }