0

各ページの背後にあるコードで、リフレクションを使用して、そのページで定義したすべてのWebメソッドを取得するにはどうすればよいですか?

現在、次のものがあり、Page_Load()で呼び出していますが、webmethod属性を持つ1つの静的関数が見つかりません。

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

1 に答える 1

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() 
        { 
        }
    }

私のために働く

于 2012-11-25T02:28:10.447 に答える