public void Run()
{
//Determine if we already have a Page Settings object
IDSPageSettings ips;
_settings.PageSettings.TryGetValue(Misc.GetCurrentPageName(), out ips);
if (ips == null)
{
ips = new IDSPageSettings(_settings);
_settings.PageSettings.Add(Misc.GetCurrentPageName(), ips);
}
//Wire up the web.config page callbacks
foreach (IDSCallback callback in ips.Callbacks)
{
Type t = Misc.ResolveType(callback.Assembly, callback.Namespaceandcallback);
SetupBinding(t, callback.Method);
}
if (ips.OnIDSEvent != null)
{
foreach (Delegate d in ips.OnIDSEvent.GetInvocationList())
{
OnIDSEvents += (IDSEvent)d;
}
}
//Wire up the web.config global callbacks
foreach (IDSCallback callback in _settings.Callbacks)
{
Type t = Misc.ResolveType(callback.Assembly, callback.Namespaceandcallback);
SetupBinding(t, callback.Method);
}
//If _callScan is false then the firing mechanism will run in
//the page_preinit event of a page/page subclass
if (!_callScan) return;
RunScan(ips);
}