从URL获取.NET页面
问题描述:
我在服务器端控件内使用jQuery发布回常见处理程序。从URL获取.NET页面
例如,我有“/handler.ashx”服务页面遍布我的应用程序。
我如何让handler.ashx中的一些代码能够获得创建控件所在页面的类。在handler.ashx中,我可以看到引用者(例如Referer:http://localhost/Playground/form2.aspx
)。但是,我不知道如何使用该URL来获取类Playground.Form2。
思路:
我能明显解析URL并假设是类的名字,但是这并不安全。
我可以使用反射使来自
Page
延伸的所有类进行迭代,并检查TemplateSourceDirectory
和/或AppRelativeVirtualPath
,看它是否是正确的对象。
然而,我想知道是否有一些方法可用,我可以使用,或者如果有人建议不首先走这条路。
答
而不是尝试从请求中获取类型对象,最好从调用标识请求类型的处理程序的页面传递某种唯一标识符。为了简化这个过程,你可以用一个接受唯一标识符并返回一个Type对象的方法来创建一个静态类。
根据检索这些Type对象的频率,缓存类型反射的结果可能是谨慎的。
也许最好从调用处理器的页面传递一些唯一标识符来标识请求类型。您可以使用接受ClassID并返回Type对象的方法创建一个静态类。 – 2010-09-03 20:00:00
@Nathan Taylor,我喜欢这个主意!其实我在其他地方做了非常类似的事情。我不知道为什么我没有想到在这里做。 – tster 2010-09-03 20:03:56