问题来自论坛,有网友这样的要求,在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,那也可以省去了接口。