70 lines
2.2 KiB
C#
70 lines
2.2 KiB
C#
using eCIAv2.Library.Config;
|
|
using eCIAv2.Library.Devices;
|
|
using eCIAv2.Library.Devices.DIIO;
|
|
using eCIAv2.Library.Devices.Scanner;
|
|
using eCIAv2.Library.Services;
|
|
using eCIAv2.WindowsApp.ViewModels;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Hosting;
|
|
using Newtonsoft.Json;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace eCIAv2.WindowsApp
|
|
{
|
|
internal static class Program
|
|
{
|
|
public static IHost AppHost { get; private set; }
|
|
|
|
/// <summary>
|
|
/// The main entry point for the application.
|
|
/// </summary>
|
|
[STAThread]
|
|
static void Main()
|
|
{
|
|
string configDir = @$"{Application.StartupPath}Config";
|
|
|
|
//LogXnet
|
|
if (LogXnet.ReadConfig(@$"{configDir}/LogXnetConfig.json") == true)
|
|
{
|
|
LogXnet.WriteLine("LogXnet Init Success");
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine("LogXnet Init Failed");
|
|
return;
|
|
}
|
|
|
|
AppHost = Host.CreateDefaultBuilder()
|
|
.ConfigureServices((context, services) =>
|
|
{
|
|
//device
|
|
services.AddTransient<IScanner,Zebra>();
|
|
services.AddTransient<IScanner,Cognex>();
|
|
services.AddTransient<IDIO,NMF>();
|
|
|
|
//device factory
|
|
services.AddSingleton<DeviceFactory>();
|
|
//device manager
|
|
services.AddSingleton<DeviceManager>();
|
|
|
|
// services
|
|
services.AddSingleton<ConfigService>();
|
|
//viewmodels
|
|
services.AddTransient<MainFromViewModel>();
|
|
// forms
|
|
services.AddTransient<MainForm>();
|
|
}).Build();
|
|
|
|
var configService = AppHost.Services.GetRequiredService<ConfigService>();
|
|
var config = configService.LoadConfig(@$"{configDir}/eCIAv2Config.json");
|
|
|
|
//config ¿À·ù üũ
|
|
if (config == null)
|
|
return;
|
|
|
|
ApplicationConfiguration.Initialize();
|
|
var form = AppHost.Services.GetRequiredService<MainForm>();
|
|
Application.Run(form);
|
|
}
|
|
}
|
|
} |