Esempio n. 1
0
        //根据controller来取Action
        static List <AttrMode> GetAllActionByController(string controller)
        {
            List <AttrMode> list     = new List <AttrMode>();
            Assembly        assembly = System.Reflection.Assembly.GetExecutingAssembly();
            Type            type     = assembly.GetType(controller); //命名空间名 + 类名

            MethodInfo[] mi = type.GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly);
            foreach (MethodInfo m in mi)
            {
                if (m.ReturnType.Name == "IHttpActionResult")
                {
                    var      attr = new AttrMode();
                    object[] t    = m.GetCustomAttributes(typeof(System.Web.Http.RouteAttribute), false);
                    if (t != null && t.Length > 0)
                    {
                        System.Web.Http.RouteAttribute r = (System.Web.Http.RouteAttribute)t[0];
                        attr.Template = r.Template;
                    }
                    object[] v = m.GetCustomAttributes(typeof(DescriptionAttribute), false);
                    if (v != null && v.Length > 0)
                    {
                        DescriptionAttribute vDes = (DescriptionAttribute)v[0];
                        attr.Description = vDes.Description;
                    }
                    if (!attr.isEmpty())
                    {
                        list.Add(attr);
                    }
                }
            }
            return(list);
        }
Esempio n. 2
0
        //根据命名空间来取所有的controller
        static List <AttrMode> GetClasses(string nameSpace)
        {
            Assembly        asm           = Assembly.GetExecutingAssembly();
            List <AttrMode> namespacelist = new List <AttrMode>();

            foreach (Type type in asm.GetTypes())
            {
                if (type.Namespace == nameSpace)
                {
                    var attr = new AttrMode();
                    attr.Template = type.Name;
                    var v = type.GetCustomAttribute(typeof(DescriptionAttribute), false);
                    if (v != null)
                    {
                        DescriptionAttribute vDes = (DescriptionAttribute)v;
                        attr.Description = vDes.Description;
                    }
                    if (!attr.isEmpty())
                    {
                        namespacelist.Add(attr);
                    }
                }
            }
            return(namespacelist);
        }