【ASHX调用ASPX.cs或aspx.cs调用aspx.cs】的一个方法或函数
在ASHX内调用ASPX.cs的一个方法或函数
接口 ISayable cs:
点击查看代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
/// <summary>
/// ISayable 的摘要说明
/// </summary>
///
namespace Insus.NET
{
public interface ISayable
{
//
// TODO: 在此处添加构造函数逻辑
//
string Say(string name);
}
}
点击查看代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Insus.NET;
public partial class a : System.Web.UI.Page,ISayable
{
public static int i = 0;
protected void Page_Load(object sender, EventArgs e)
{
}
public string Say(string name)
{
return "hi" + name;
}
}
点击查看代码
<%@ WebHandler Language="C#" Class="b" %>
using System;
using System.Web;
using System.Web.Compilation;
using System.Web.UI;
using Insus.NET;
public class b : IHttpHandler {
public void ProcessRequest (HttpContext context) {
string virtuaPath = "~/a.aspx";
Type type = BuildManager.GetCompiledType(virtuaPath);
Page a = (Page)Activator.CreateInstance(type);
string s = ((ISayable)a).Say("nihao");
HttpContext.Current.Response.Write(s);
}
public bool IsReusable {
get {
return false;
}
}
}
PageA.aspx.cs
点击查看代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Compilation;
using System.Web.UI;
using System.Web.UI.WebControls;
using Insus.NET;
public partial class PageA : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string virtuaPath = "~/PageB.aspx";
Type type = BuildManager.GetCompiledType(virtuaPath);
Page a = (Page)Activator.CreateInstance(type);
((ISayable)a).Say("nihao");
}
}
点击查看代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Insus.NET;
public partial class PageB : System.Web.UI.Page,ISayable
{
protected void Page_Load(object sender, EventArgs e)
{
}
public void Say(string name)
{
HttpContext.Current.Response.Write(name);
}
}
PageC.aspx.cs
点击查看代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Compilation;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Reflection;
public partial class PageC : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string virtuaPath = "~/PageB.aspx";
Type type = BuildManager.GetCompiledType(virtuaPath);
MethodInfo mi = type.GetMethod("Say");
Page b = (Page)Activator.CreateInstance(type);
mi.Invoke(b, new object[] { "Insus.NET" });
}
}
点击查看代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Insus.NET;
public partial class PageB : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
public void Say(string name)
{
HttpContext.Current.Response.Write(name);
}
}