zoule 5 months ago
parent
commit
19b9ca62b1
3 changed files with 43 additions and 42 deletions
  1. 4 4
      DW5S.App/EditForms/X1D1DTOParamEditor.cs
  2. 28 30
      DW5S.App/MainForm.cs
  3. 11 8
      DW5S.WebApi/WebApiHelper.cs

+ 4 - 4
DW5S.App/EditForms/X1D1DTOParamEditor.cs

@@ -33,7 +33,7 @@ namespace DW5S.App.EditForms
         private List<SatInfo> listSat;
         private CxRes cx;
         private StationRes station;
-        public   X1D1DTOParamEditor(PosRes info, MapControl mapControl)
+        public X1D1DTOParamEditor(PosRes info, MapControl mapControl)
         {
             InitializeComponent();
             this.info = info;
@@ -51,7 +51,7 @@ namespace DW5S.App.EditForms
             this.layoutControl1.BestFit();
             var repsSat = unitOfWork.Of<SatInfo>();
             listSat.AddRange(await repsSat.GetAllAsync());
-            var repsCg= unitOfWork.Of<CgRes>();
+            var repsCg = unitOfWork.Of<CgRes>();
             cg = await repsCg.FirstOrDefaultAsync(m => m.Id == info.CgResID);
 
             var repsCx = unitOfWork.Of<CxRes>();
@@ -191,7 +191,7 @@ namespace DW5S.App.EditForms
                 var msat = listSat.FirstOrDefault(m => m.SatCode == cg.MainCode.Value)?.Sat;
                 if (string.IsNullOrWhiteSpace(msat)) msat = cg.MainCode.Value.ToString();
 
-                
+
 
                 var xdDtoLine = DrawDtoLineHelper.DtoLineXdNew(dtoLineXd);
                 List<MapPolyline> polylines = new List<MapPolyline>();
@@ -212,7 +212,7 @@ namespace DW5S.App.EditForms
             }
             catch (Exception ex)
             {
-                logger.LogError(ex,$"绘制{info.PosResType.GetEnumDisplayName()}时差线失败.PosID={info.Id},SigTime={info.SigTime}");
+                logger.LogError(ex, $"绘制{info.PosResType.GetEnumDisplayName()}时差线失败.PosID={info.Id},SigTime={info.SigTime}");
                 DxHelper.MsgBoxHelper.ShowWarning($"绘制{info.PosResType.GetEnumDisplayName()}时差线失败,{ex.Message}");
             }
         }

+ 28 - 30
DW5S.App/MainForm.cs

@@ -38,6 +38,7 @@ using System.Configuration;
 
 using Microsoft.Extensions.Logging;
 using DW5S.Service;
+using System.Runtime.CompilerServices;
 
 namespace DW5S
 {
@@ -82,24 +83,24 @@ namespace DW5S
         private string text;
         private async void MainForm_Load(object sender, EventArgs e)
         {
-            this.text = this.Text;
-            this.HtmlText = $"<size=12>{this.text}";
-            var repsSys = unitOfWork.Of<SysSetings>();
-            var settings = await repsSys.FirstOrDefaultAsync();
-            btn_ItemClick(null, null);
-            ServerContext.Instance.Init();
-            this.HtmlText = $"<size=12>{text}(<size=9>{settings.TimeZoneDisplayName}</size>)";
-            Messenger.Defalut.Sub<SysSetings>("时区改变", settings =>
-            {
-                this.HtmlText = $"<size=12>{text}(<size=9>{settings.TimeZoneDisplayName}</size>)";
-            });
-            StartProcess();
-            _ = XlScan();
-            _ = XlClear();
-            _ = ClearLocalFile();
-            _ = ClearLog();
-            _ = MonitorCpuAndMemory();
-            await XlLonCalc();
+            //this.text = this.Text;
+            //this.HtmlText = $"<size=12>{this.text}";
+            //var repsSys = unitOfWork.Of<SysSetings>();
+            //var settings = await repsSys.FirstOrDefaultAsync();
+            //btn_ItemClick(null, null);
+            //ServerContext.Instance.Init();
+            //this.HtmlText = $"<size=12>{text}(<size=9>{settings.TimeZoneDisplayName}</size>)";
+            //Messenger.Defalut.Sub<SysSetings>("时区改变", settings =>
+            //{
+            //    this.HtmlText = $"<size=12>{text}(<size=9>{settings.TimeZoneDisplayName}</size>)";
+            //});
+            //StartProcess();
+            //_ = XlScan();
+            //_ = XlClear();
+            //_ = ClearLocalFile();
+            //_ = ClearLog();
+            //_ = MonitorCpuAndMemory();
+            //await XlLonCalc();
         }
         private Task MonitorCpuAndMemory()
         {
@@ -415,24 +416,21 @@ namespace DW5S
 
         private async void btnOpenApi_ItemClick(object sender, ItemClickEventArgs e)
         {
-
-            var repsSys = unitOfWork.Of<SysSetings>();
-            var settings = await repsSys.FirstOrDefaultAsync();
-            if (settings == null)
-            {
-                DxHelper.MsgBoxHelper.ShowWarning($"请在系统设置中配置基础信息");
-                return;
-            }
-            string addr = $"http://{IpHelper.GetLocalIp()}:{settings.HttpPort}/swagger";
+            string addr = $"http://{IpHelper.GetLocalIp()}:{AppConfigHelper.Get("HttpPort", 8090)}/swagger";
             try
             {
-                System.Diagnostics.Process.Start(addr);
+                //System.Diagnostics.Process.Start(addr);//NetFramework可用,NetCore使用CMD启动
+                ProcessStartInfo info = new ProcessStartInfo();
+                info.Arguments = $"/C start {addr}";
+                info.FileName = "cmd";
+                info.UseShellExecute = false;
+                info.CreateNoWindow = true;
+                Process.Start(info);
             }
-            catch
+            catch (Exception ex)
             {
                 DxHelper.MsgBoxHelper.ShowError($"无法打开默认浏览器,请手动打开浏览器查看接口文档.地址{addr}");
             }
-
         }
 
         private void StartProcess()

+ 11 - 8
DW5S.WebApi/WebApiHelper.cs

@@ -165,16 +165,17 @@ namespace DW5S.WebApi
             builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory());
             var hostBuilder = builder.Host.ConfigureContainer<Autofac.ContainerBuilder>(builder =>
             {
+                //注入Serilog日志对象
+                builder.Register((c, p) => Serilog.Log.Logger).SingleInstance();
+
                 //瞬态注入Controllerer,每次接口请求都创建了新的对象
                 builder.RegisterAssemblyTypes(assemblies)
                 .Where(type => type.Name.EndsWith("Controller"))
                   .PropertiesAutowired((propInfo, instance) =>//Controller中的属性支持自动注入
                     propInfo.Name.EndsWith("Autowired") || //以Autowired名称结尾的属性自动注入
-                    propInfo.GetCustomAttribute<AutowiredAttribute>() != null)//带有Autowired特性的属性自动注入
-                .AsSelf()//接口的默认实现
-                .InstancePerDependency();
+                    propInfo.GetCustomAttribute<AutowiredAttribute>() != null);//带有Autowired特性的属性自动注入
 
-                //单例注入以Service或Repository结尾的类(有继承的类不会注入)
+                //Scop注入以Service或Repository结尾的类(有继承的类不会注入)
                 builder.RegisterAssemblyTypes(assemblies)
                 .Where(type =>
                 {
@@ -192,16 +193,16 @@ namespace DW5S.WebApi
                     propInfo.Name.EndsWith("Autowired") || //以Autowired名称结尾的属性自动注入
                     propInfo.GetCustomAttribute<AutowiredAttribute>() != null)//带有Autowired特性的属性自动注入
                 .AsSelf()//接口的默认实现
-                .SingleInstance();
+                .InstancePerLifetimeScope();
 
-                //注入后台服务
+                //注入BackgroundService后台服务
                 builder.RegisterAssemblyTypes(assemblies)
                 .Where(type => type.Name.EndsWith("Service") && type.IsSubclassOf(typeof(BackgroundService)))
                 .PropertiesAutowired((propInfo, instance) =>//BackgroundService类中的属性支持自动注入
                     propInfo.Name.EndsWith("Autowired") || //以Autowired名称结尾的属性自动注入
                     propInfo.GetCustomAttribute<AutowiredAttribute>() != null)//带有Autowired特性的属性自动注入
                 .As<IHostedService>()//后台服务方式注入
-                .InstancePerDependency();
+                .SingleInstance();
             });
             #endregion
             #region 注入HostedService后台服务(已屏蔽,在后面使用了autofac自动注入)
@@ -231,6 +232,7 @@ namespace DW5S.WebApi
                 options.SerializerSettings.Converters.Add(new IsoDateTimeConverter() { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" });
             });
             var app = builder.Build();
+            var container = app.Services.GetAutofacRoot();//autofac容器
             #region 启用静态资源访问
             foreach (var item in staticDir)
             {
@@ -280,7 +282,8 @@ namespace DW5S.WebApi
             //app.UseMiddleware<ExceptionHandlingMiddleware>();//全局异常处理
             app.MapControllers();
             //app.Map("/", () => "必须通过GRPC客户端访问此接口");
-            app.RunAsync(_cts.Token);
+            //app.RunAsync(_cts.Token);
+            app.Run();
         }
 
         /// <summary>