ScriptManager,Page,静态方法...如何在没有Page的情况下获取当前的ScriptManager?

Jam*_*rgy 2 c# asp.net scriptmanager

我正在尝试扩展ScriptManager以简化处理具有多个资源文件的资源(例如,多个脚本文件以及css).我们的目标是,我将能够在单个添加ScriptReferenceScripts并将其加载与该基准名称的多个资源.

我坚持的是,ScriptManager当使用不包含Page参数的静态方法时,你的基本知道如何处理这些东西?例如:

ScriptManager.ScriptResourceMapping.AddDefinition("someName", new
   ScriptResourceDefinition { Path="/script/somescript.js"});
Run Code Online (Sandbox Code Playgroud)

这为(我猜)任何活动脚本管理器为您调用它时正在运行的页面添加了一个定义.但与旧式方法不同,就像RegisterClientScriptBlock没有传递标识页面的参数一样.但是这些东西必须存放在ScriptManager对象中,不是吗?那怎么知道呢?

我可以随时获得对活动的引用:

ScriptManager.GetCurrent(page);

但理想情况下,我会创建与微软完全相同的新方法.我无法弄清楚如何实现类似的东西

ScriptManager.ScriptResourceMapping.AddDefinition(string name,
    ScriptResourceDefinition definition,
    ResourceType type)
Run Code Online (Sandbox Code Playgroud)

这可以找出对象实例添加内容而无需添加Page参数.不知怎的,他们正在做...我怎么能?

Tim*_*ter 8

(Page)(HttpContext.Current.Handler)即使在静态上下文中,您也可以获得页面引用.