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; } /// /// The main entry point for the application. /// [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(); services.AddTransient(); services.AddTransient(); //device factory services.AddSingleton(); //device manager services.AddSingleton(); // services services.AddSingleton(); //viewmodels services.AddTransient(); // forms services.AddTransient(); }).Build(); var configService = AppHost.Services.GetRequiredService(); var config = configService.LoadConfig(@$"{configDir}/eCIAv2Config.json"); //config ¿À·ù üũ if (config == null) return; ApplicationConfiguration.Initialize(); var form = AppHost.Services.GetRequiredService(); Application.Run(form); } } }