protected void CreateAndInitializeHelpers()
{
HybridDictionary helpers = new HybridDictionary();
// Custom helpers
foreach(HelperDescriptor helper in metaDescriptor.Helpers)
{
object helperInstance = Activator.CreateInstance(helper.HelperType);
IControllerAware aware = helperInstance as IControllerAware;
if (aware != null)
{
aware.SetController(controller);
}
PerformAdditionalHelperInitialization(helperInstance);
if (helpers.Contains(helper.Name))
{
throw new ControllerException(String.Format("Found a duplicate helper " +
"attribute named '{0}' on controller '{1}'", helper.Name,
controller.Name));
}
helpers.Add(helper.Name, helperInstance);
}
CreateStandardHelpers(helpers);
controller.helpers = helpers;
}