asp.net codebehind找到webmethods

时间:2012-11-25 02:07:59

标签: asp.net

在每个页面背后的代码中,如何使用反射来获取我在该页面上定义的所有web方法?

目前我有以下内容并在Page_Load()中调用它,但它没有找到我的1静态函数,我有一个webmethod属性。

MethodInfo[] methods = this.GetType().GetMethods();
foreach (MethodInfo method in methods)
{
    foreach (Attribute attribute in method.GetCustomAttributes(true))
    {
        if (attribute is WebMethodAttribute)
        {
        }
    }
}

1 个答案:

答案 0 :(得分:1)

尝试使用Public static:

 public partial class Default : System.Web.UI.Page
    {
        public Default()
        {

        }

        protected void Page_Load(object sender, EventArgs e)
        {
            MethodInfo[] methodInfos = typeof(Default).GetMethods(BindingFlags.Public |
                                                      BindingFlags.Static);
            foreach (MethodInfo method in methodInfos)
            {
                foreach (Attribute attribute in method.GetCustomAttributes(true))
                {
                    if (attribute is WebMethodAttribute)
                    {
                    }
                }
            }

        }
        [WebMethod]
        public static void A() 
        { 
        }
    }

为我工作