/// <summary> /// Handles any exception ocurred in the module typeloading process, /// logs the error using the <seealso cref="ILoggerFacade"/> and throws a <seealso cref="ModuleTypeLoadingException"/>. /// This method can be overriden to provide a different behavior. /// </summary> /// <param name="moduleInfo">The module metadata where the error happenened.</param> /// <param name="exception">The exception thrown that is the cause of the current error.</param> /// <exception cref="ModuleTypeLoadingException"></exception> protected virtual void HandleModuleTypeLoadingError(ModuleInfo moduleInfo, Exception exception) { ModuleTypeLoadingException moduleTypeLoadingException = exception as ModuleTypeLoadingException; if (moduleTypeLoadingException == null) { moduleTypeLoadingException = new ModuleTypeLoadingException(moduleInfo.ModuleName, exception.Message, exception); } this.loggerFacade.Log(moduleTypeLoadingException.Message, Category.Exception, Priority.High); throw moduleTypeLoadingException; }