/// <summary> /// Effettua l'inizializzazione del modulo /// </summary> private void ModuleInitialization() { if (ModuleInitialized) { return; } try { // Imposto il resolver FileLogger.Debug(Name, String.Format("Inizializzazione Thread su AppDomain {0}", AppDomain.CurrentDomain.FriendlyName)); AppDomain.CurrentDomain.AssemblyResolve += (s, a) => OnCurrentDomainAssemblyResolve(a, ConfigurationModule); // Creo la classe principale del modulo (tutte le successive richieste di dll saranno gestite dall'apposito metodo) JeepModule = Tools.ModuleBuilder(ConfigurationModule.FullAssemblyPath, ConfigurationModule.Class, ConfigurationModule.Parameters, ConfigurationModule.Id); String useProfiler = ConfigurationManager.AppSettings["NHProfiler"]; bool profiler; if (!string.IsNullOrEmpty(useProfiler) && bool.TryParse(useProfiler, out profiler) && profiler) { NHibernateProfiler.Initialize(); FileLogger.Debug(Name, String.Format("Profiler agganciato al modulo {0}.", Name)); } // Inizializzo il modulo FileLogger.Info(Name, String.Format("Inizializzazione modulo {0} in corso....", Name)); JeepModule.Initialize(ConfigurationModule.Parameters); ModuleInitialized = true; FileLogger.Info(Name, String.Format("Modulo {0} correttamente inizializzato.", Name)); // Genero e attivo il timer di riferimento Timers.Add(Name, new Timer(OnTimerCallback, Timer, Timer.Duetime, Timer.Period)); } catch (Exception ex) { FileLogger.Error(Name, String.Format("Rilevato errore su AppDomain {0} - Stacktrace: {1}", AppDomain.CurrentDomain.FriendlyName, ex.StackTrace), ex); Stop(); } }
/// <summary> /// Metodo richiamato dal timer principale /// </summary> private void DoWork() { // Esecuzione del DoWork del modulo JeepModule.DoWork(); }