ControlAttribute.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334
  1. //############################################################
  2. // https://github.com/yuzhengyang
  3. // author:yuzhengyang
  4. //############################################################
  5. using System;
  6. namespace Azylee.Core.ReflectionUtils.AttributeUtils
  7. {
  8. [AttributeUsage(AttributeTargets.Field | AttributeTargets.Method, Inherited = false, AllowMultiple = true)]
  9. public class ControlAttribute : Attribute
  10. {
  11. public string Widget { get; set; }
  12. public string Click { get; set; }
  13. public ControlAttributeEvent Event { get; set; }
  14. //public static void Band(Form form)
  15. //{
  16. //string buttonName = "ShowMsg";
  17. //Type type = form.GetType();
  18. //FieldInfo fieldShowMsg = type.GetField(buttonName, BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly);
  19. //ControlAttribute controlAttribute = (ControlAttribute)fieldShowMsg.GetCustomAttribute(typeof(ControlAttribute));
  20. //FieldInfo fieldButton1 = type.GetField(controlAttribute.Widget, BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly);
  21. //fieldShowMsg.SetValue(form, fieldButton1.GetValue(form));
  22. //MethodInfo method = type.GetMethod(controlAttribute.Click, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public);
  23. //EventInfo evt = fieldShowMsg.FieldType.GetEvent("Click", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public);
  24. //evt.AddEventHandler(fieldShowMsg.GetValue(form), Delegate.CreateDelegate(typeof(EventHandler), form, method));
  25. //int a = 0;
  26. //}
  27. }
  28. }