1

我正在搜索谷歌,有没有办法在运行时在我的页面中添加任何方法。我从stackoverflow 获得了一个链接……这是expando 对象。

我不熟悉expando对象。这是我得到和喜欢的一小段代码

namespace DynamicDemo
{
class ExpandoFun
{
public static void Main()
{
    Console.WriteLine("Fun with Expandos...");
    dynamic student = new ExpandoObject();
    student.FirstName = "John";
    student.LastName = "Doe";

 student.Introduction=new Action(()=>
Console.WriteLine("Hello my name is {0} {1}",student.FirstName,student.LastName);
);

);
    Console.WriteLine(student.FirstName);
    student.Introduction();
}
}
}

根据我的情况,我需要在下面添加一个例程,就像在许多 aspx 页面中一样。

[WebMethod]
   public static string LoadData(string CountryCode,int PageIndex)
   {
       string strData = "";
       if (CountryCode != "")
       {
           strData = Left1.HavingCountry(CountryCode, PageIndex);
       }
       else
       {
           strData = Left1.WithoutCountry(PageIndex);
       }
       return strData;
   }

所以我需要知道是否有任何方法可以在我的 ascx 页面中添加一些技术,这将在托管该特定 ascx 的所有 aspx 页面中添加上述方法。请帮助我实现它。谢谢

4

1 回答 1

0
I don't think it is possible.
Can you do this way

1. create a `class` which extents `System.Web.UI.Page`.
2. write you `WebMethod` in that class.
3. Create your aspx pages by extending this class

public partial class _Default : TestUserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
}

public class TestUserControl : System.Web.UI.Page
{
    [System.Web.Services.WebMethod]
    public static string LoadData(string CountryCode, int PageIndex)
    {
        string strData = "";
        if (CountryCode != "")
        {
             strData = Left1.HavingCountry(CountryCode, PageIndex);
        }
        else
        {
             strData = Left1.WithoutCountry(PageIndex);
        }
        return strData;
     }
  }
于 2012-06-25T10:12:15.663 回答