Exemple #1
0
        public static IInvokable MakeInvokable(InvokableAttribute attribute, MethodInfo methodInfo, IBoundInstance boundInstance)
        {
            string finalName  = GetFinalName(attribute.Name, boundInstance);
            uint   instanceId = boundInstance?.UniqueId ?? 0;

            string[] argDescriptions   = GetArgDescriptions(methodInfo.GetParameters());
            string   returnDescription = GetReturnDescription(methodInfo);

            return(MakeInvokable(new InvokableInfo(finalName, instanceId, CustomTweakerAttributes.Get(methodInfo), attribute.Description, argDescriptions, returnDescription), methodInfo, boundInstance?.Instance));
        }
Exemple #2
0
        public static IInvokable MakeInvokable(InvokableAttribute attribute, EventInfo eventInfo, IBoundInstance boundInstance)
        {
            string     finalName  = GetFinalName(attribute.Name, boundInstance);
            uint       instanceId = boundInstance?.UniqueId ?? 0;
            object     instance   = boundInstance?.Instance;
            MethodInfo method     = eventInfo.EventHandlerType.GetMethod("Invoke");

            string[] argDescriptions   = GetArgDescriptions(method.GetParameters());
            string   returnDescription = GetReturnDescription(method);

            return(MakeInvokable(new InvokableInfo(finalName, instanceId, CustomTweakerAttributes.Get(eventInfo), attribute.Description, argDescriptions, returnDescription), eventInfo, instance));
        }
 public AutoInvokable(string name, Delegate del, IBoundInstance instance = null, string description = "", string[] argDescriptions = null, string returnDescription = "")
 {
     if (CheckForManager())
     {
         uint   num   = instance?.UniqueId ?? 0;
         string name2 = $"{name}#{num}";
         invokable = AutoInvokableBase.Manager.RegisterInvokable(new InvokableInfo(name2, num, CustomTweakerAttributes.Get(del.Method), description, argDescriptions, returnDescription), del);
     }
 }
 public AutoInvokable(string invokableName, string methodName, IBoundInstance instance, string description = "", string[] argDescriptions = null, string returnDescription = "")
 {
     if (!CheckForManager())
     {
         return;
     }
     MethodInfo[] methods = instance.Type.GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
     foreach (MethodInfo methodInfo in methods)
     {
         if (methodInfo.Name == methodName)
         {
             uint   uniqueId = instance.UniqueId;
             string name     = $"{invokableName}#{uniqueId}";
             invokable = AutoInvokableBase.Manager.RegisterInvokable(new InvokableInfo(name, uniqueId, CustomTweakerAttributes.Get(methodInfo), description, argDescriptions, returnDescription), methodInfo, instance.Instance);
         }
     }
 }