2010-09-03 148 views
0

我在服务器端控件内使用jQuery发布回常见处理程序。从URL获取.NET页面

例如,我有“/handler.ashx”服务页面遍布我的应用程序。

我如何让handler.ashx中的一些代码能够获得创建控件所在页面的类。在handler.ashx中,我可以看到引用者(例如Referer:http://localhost/Playground/form2.aspx)。但是,我不知道如何使用该URL来获取类Playground.Form2。

思路:

  1. 我能明显解析URL并假设是类的名字,但是这并不安全。

  2. 我可以使用反射使来自Page延伸的所有类进行迭代,并检查TemplateSourceDirectory和/或AppRelativeVirtualPath,看它是否是正确的对象。

然而,我想知道是否有一些方法可用,我可以使用,或者如果有人建议不首先走这条路。

+1

也许最好从调用处理器的页面传递一些唯一标识符来标识请求类型。您可以使用接受ClassID并返回Type对象的方法创建一个静态类。 – 2010-09-03 20:00:00

+0

@Nathan Taylor,我喜欢这个主意!其实我在其他地方做了非常类似的事情。我不知道为什么我没有想到在这里做。 – tster 2010-09-03 20:03:56

回答

1

而不是尝试从请求中获取类型对象,最好从调用标识请求类型的处理程序的页面传递某种唯一标识符。为了简化这个过程,你可以用一个接受唯一标识符并返回一个Type对象的方法来创建一个静态类。

根据检索这些Type对象的频率,缓存类型反射的结果可能是谨慎的。