コード例 #1
0
        /// <summary>
        /// 绑定实例命令
        /// </summary>
        /// <param name="classType"></param>
        /// <param name="instance"></param>
        internal void AddCommandInstance(Type classType, object instance)
        {
            if (instance == null)
            {
                Terminal.LogError("[Shell] Instance couldn't be null!");
                return;
            }

            MethodInfo[] methods = classType.GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
            foreach (MethodInfo method in methods)
            {
                if (method != null)
                {
                    CommandAttribute attribute = method.GetCustomAttribute <CommandAttribute>();
                    if (attribute != null)
                    {
                        InternalAddCommand(attribute.command, attribute.description, method, instance);
                    }
                }
            }
        }