从ASPX代码背后调用Web方法

Del*_*rin 1 c# asp.net webmethod

我试图找出一种方法,我可以从另一个ASPX Code Behind页面调用Web方法(位于aspx页面后面的代码中作为公共静态方法).

这是Page A.aspx背后的代码

public partial class PageA : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    // other code not relevant is here  
    }

    [WebMethod(true)]
    public static string GetStringInfo()
    {
         // do some stuff here to build my string
         // return string
    }
}
Run Code Online (Sandbox Code Playgroud)

在页面B上,我需要能够在页面加载或其他事件期间调用GetStringInfo()来获取信息.GetStringInfo()相当复杂,并且出于我无法控制的原因,无法将其移动到其他地方或目前重建.

如何从其他页面的代码中使用上面的Web方法?

我已经尝试实例化其他页面(PageB)的副本,例如:

public partial class PageB : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
       PageA page = new PageA();
       page.GetStringInfo();        
    }
}
Run Code Online (Sandbox Code Playgroud)

这里的问题是因为它是动态编译的,所以我没有一个简单的命名空间来引用和访问.我试过添加一个,它忽略了它.

该项目位于.net 3.5,C#,是一个网站项目(不是Web应用程序).

任何帮助表示赞赏!

Dar*_*rov 5

如果GetStringInfo方法是静态的,则不需要PageA调用它的实例:

public partial class PageB : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
       string info = PageA.GetStringInfo();        
    }
}
Run Code Online (Sandbox Code Playgroud)