手记

ASHX呼叫ASPX.cs的方法

问题来自论坛,有网友这样的要求,在ASHX内呼叫ASPX.cs的一个方法或函数。

在一个网站中,也许不止只有一个aspx网页。
把aspx.cs内的方法宣告为public,ashx想呼叫时,也不知道是哪一个aspx内的方法。
就是某一个aspx.cs有引用了这个ashx,这个ashx也不知道呼叫的方法在当前这个aspx中。 

为了解决上面的问题,Insus.NET创建一个接口(interface)

 

 

在站点中,创建一个aspx,名称暂叫A.aspx。在a.aspx没有写任何代码,但在a.aspx.cs内,需要实作刚才写好的接口:

 

现在我们写一个Handler:名称叫B.ashx:

 

试运行看看:

 

 

下面内容于2014-04-11 08:10分补充与整理:
在开发asp.net的网站,很多时候想PageA.aspx.cs中想呼叫PageB.aspx.cs内的方法,或是反过来,PageB.aspx.cs中想去呼叫PageA.aspx.cs内的方法。
一般情况之下,是不能实例化后呼叫的。如参考此方法,可以迎刃而解。
举个例子说明:

在PageB.aspx.cs定义一个Say方法:

 

然后PageA.aspx.cs去呼叫PageB.aspx.cs内的Say方法:

 

网页执行结果:

 

既然用到了反射Reflection,那也可以省去了接口。

 

0人推荐
随时随地看视频
慕课网APP