Private static readonly object ReflectionLock = new object();
Lock (ReflectionLock)
{
Type scriptManagerType =
Type.GetType(
"System.Web.UI.ScriptManager, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35",
false);
if (scriptManagerType != null)
// ASP.NET AJAX is installed.
else
// ASP.NET AJAX is not installed.
检查是否已为单个页启用 AJAX 功能
ScriptManager sm = ScriptManager.GetCurrent(Page)
if (sm == null)
{
// ASP.NET AJAX functionality is not enabled for the page.
}
else
{
// AJAX functionality is enabled for the page.
}
来自:http://msdn.microsoft.com/zh-cn/library/bb907614.aspx
同样,可以通过此方法,对其它的组件进行判断,如ActiveReport的判断 "DataDynamics.ActiveReports.Web.Handlers.CompiledReportHandler, ActiveReports.Web, Version=5.1.0.158, Culture=neutral, PublicKeyToken=cc4967777c49a3ff",
这个信息是从WebConfig文件中得到的。(不安装时会报错。查看相应的错误语句)
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false" />
<add verb="*" path="*.rpx" type="DataDynamics.ActiveReports.Web.Handlers.RpxHandler, ActiveReports.Web, Version=5.1.0.158, Culture=neutral, PublicKeyToken=cc4967777c49a3ff" />
有很久一段时间我的BLOG上没有出现AJAX相关讯息了,主要当然是因为绝大部分的重心都放到了Silverlight身上(可预期的未来应该也会是如此)。
但由于工作上的需要,最近还是回头看了一下即将推出的ASP.NET Ajax Library...,顺便找了一下网络上的讯息,看这个态势我猜想应该不少ASP.NET开发人员忽略掉了这个其实已经bet ......