public override void BuildSteps()
{
var startupRoot = ConfigurationHelper.GetStartupConfigRoot();
if (!startupRoot.IsNull())
{
//加载ResourceModules
var resourcesTypes = startupRoot.GetAtrriuteValues("Type", new string[] { ConfigurationHelper.Config_Node_Modules, ConfigurationHelper.Config_Node_ResourceModules, ConfigurationHelper.Config_Node_Operation });
var resourceModules = new List <IResourceModule>();
foreach (var type in resourcesTypes)
{
resourceModules.Add(CreateInstanceByType <IResourceModule>(type));
}
this.ThemeResourceModules.AddRange(resourceModules.Where(res => res is IThemeResourceModule).Cast <IThemeResourceModule>());
this.LanguageResourceMudules.AddRange(resourceModules.Where(res => res is ILanguageResourceModule).Cast <ILanguageResourceModule>());
//加载LoginModules
var loginTypes = startupRoot.GetAtrriuteValues("Type", new string[] { ConfigurationHelper.Config_Node_Modules, ConfigurationHelper.Config_Node_LoginModules, ConfigurationHelper.Config_Node_Operation });
foreach (var type in loginTypes)
{
this.LoginModules.Add(CreateInstanceByType <ILoginModule>(type));
}
//加载AuthenticationModules
var authenticationTypes = startupRoot.GetAtrriuteValues("Type", new string[] { ConfigurationHelper.Config_Node_Modules, ConfigurationHelper.Config_Node_AuthenticationModules, ConfigurationHelper.Config_Node_Operation });
foreach (var type in authenticationTypes)
{
this.AuthenticationModules.Add(CreateInstanceByType <IAuthenticationModule>(type));
}
//加载AutorizationModules
var authorizationTypes = startupRoot.GetAtrriuteValues("Type", new string[] { ConfigurationHelper.Config_Node_Modules, ConfigurationHelper.Config_Node_AuthorizationModules, ConfigurationHelper.Config_Node_Operation });
foreach (var type in authorizationTypes)
{
this.AuthorizationModules.Add(CreateInstanceByType <IAuthorizationModule>(type));
}
//加载执行流程
var executionTypes = startupRoot.GetAtrriuteValues("Type", new string[] { ConfigurationHelper.Config_Node_Modules, ConfigurationHelper.Config_Node_ExecutionModules, ConfigurationHelper.Config_Node_Operation });
foreach (var type in executionTypes)
{
this.ExecutionModules.Add(CreateInstanceByType <IExecutionModule>(type));
}
}
}