Я создал пользовательский модуль для Kofax.Этот модуль является приложением WinForms с формой выполнения и формой установки (модуль администрирования).
Для приложения времени выполнения я использую этот код
Program.cs - запустить форму выполнения
internal static class Program
{
[STAThread]
private static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new FrmMain());
}
}
FrmMain.cs - инициализировать пользовательский интерфейс и создать необходимые экземпляры
public partial class FrmMain : Form
{
private BatchProcessor batchProcessor;
private BatchManager batchManager;
private SessionManager sessionManager;
public FrmMain()
{
InitializeComponent();
}
private void FrmMain_Load(object sender, EventArgs e)
{
try
{
batchProcessor = new BatchProcessor();
sessionManager = new SessionManager();
batchManager = new BatchManager(batchProcessor, sessionManager);
// UpdateUI();
timerBatchPolling.Enabled = true;
}
catch (Exception exception)
{
throw exception;
}
}
private void FrmMain_FormClosed(object sender, FormClosedEventArgs e)
{
timerBatchPolling.Enabled = false;
try
{
sessionManager.Logout();
}
catch (Exception exception)
{
throw exception;
}
}
private void timerBatchPolling_Tick(object sender, EventArgs e)
{
timerBatchPolling.Enabled = false;
batchManager.BatchPolling();
// UpdateUI();
timerBatchPolling.Enabled = true;
}
}
BatchManager.cs - запросить следующую партию для обработки
internal class BatchManager
{
private BatchProcessor batchProcessor;
private SessionManager sessionManager;
public IBatch CurrentActiveBatch { get; private set; }
public BatchManager(BatchProcessor batchProcessor, SessionManager sessionManager)
{
this.batchProcessor = batchProcessor;
this.sessionManager = sessionManager;
this.sessionManager.LoginToRuntimeSession();
}
public void BatchPolling()
{
CurrentActiveBatch = sessionManager.GetNextBatch();
if (CurrentActiveBatch != null)
{
batchProcessor.ProcessBatch(CurrentActiveBatch);
}
else
{
sessionManager.Logout();
}
}
}
BatchProcessor.cs - обработать партию
internal class BatchProcessor
{
public void ProcessBatch(IBatch batch)
{
// ...
}
}
Iтолько что увидел, что также можно запускать пользовательские модули как сервисы.Я не знаю, как их зарегистрировать или как настроить код, поэтому я спрашиваю, есть ли способ изменить мой код, чтобы превратить модуль в службу вместо приложения форм.
Спасибо запомощь!