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 に答える