\"refactor: Öع¹ÍøÂ繤¾ßÀಢ¸üÐÂÏà¹ØÊÓͼ\"

\"- ÖØÃüÃû NetworkInfoUtil1.cs Ϊ NetworkInfoUtil.cs ²¢¸üÐÂÆäʵÏÖ\"
\"- µ÷Õû NetworkMonitorViewModel ÒÔʹÓøüкóµĹ¤¾ßÀà\"
\"- ͬ²½ǰ¶Ë×é¼þ¶¨ÒåÓë½â¾ö·½°¸Óû§ÅäÖÃ\"
This commit is contained in:
jimmy committed 2025-07-13 15:49:13 +08:00
1 parent b196e511b6
commit 6d2ee0118f
4 files changed
+36 -11

No files matched your search

@@ -10,7 +10,7 @@ namespace Common.Utils
/// <summary> /// <summary>
/// 网络监控帮助类 - 使用 .NET 内置的 NetworkInterface 类 /// 网络监控帮助类 - 使用 .NET 内置的 NetworkInterface 类
/// </summary> /// </summary>
public class NetworkMonitorHelper1 public class NetworkMonitorHelper
{ {
#region 公共类和方法 #region 公共类和方法
@@ -50,6 +50,7 @@
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATcpIpSendTraceData_002Ecs_002Fl_003AC_0021_003FUsers_003Fcharlatans_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F25b12134b1124ffbab73641db2e54e5b310830_003F28_003Fce7c9cfa_003FTcpIpSendTraceData_002Ecs/@EntryIndexedValue">ForceIncluded</s:String> <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATcpIpSendTraceData_002Ecs_002Fl_003AC_0021_003FUsers_003Fcharlatans_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F25b12134b1124ffbab73641db2e54e5b310830_003F28_003Fce7c9cfa_003FTcpIpSendTraceData_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATimer_002Ecs_002Fl_003AC_0021_003FUsers_003Fcharlatans_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F211e6f3b24fa438a92f1815153647ce2c8f908_003Fa8_003F04476824_003FTimer_002Ecs_002Fz_003A2_002D1/@EntryIndexedValue">ForceIncluded</s:String> <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATimer_002Ecs_002Fl_003AC_0021_003FUsers_003Fcharlatans_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F211e6f3b24fa438a92f1815153647ce2c8f908_003Fa8_003F04476824_003FTimer_002Ecs_002Fz_003A2_002D1/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATimer_002Ecs_002Fl_003AC_0021_003FUsers_003Fcharlatans_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Ffe2ae574758f4da99bb3bfcba69a0a40b6928_003F7f_003Fb5cb1e21_003FTimer_002Ecs/@EntryIndexedValue">ForceIncluded</s:String> <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATimer_002Ecs_002Fl_003AC_0021_003FUsers_003Fcharlatans_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Ffe2ae574758f4da99bb3bfcba69a0a40b6928_003F7f_003Fb5cb1e21_003FTimer_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATraceEventLevel_002Ecs_002Fl_003AC_0021_003FUsers_003Fcharlatans_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F25b12134b1124ffbab73641db2e54e5b310830_003F3e_003F5dae014e_003FTraceEventLevel_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATraceEventNativeMethods_002Ecs_002Fl_003AC_0021_003FUsers_003Fcharlatans_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F25b12134b1124ffbab73641db2e54e5b310830_003F03_003Fcb4b3163_003FTraceEventNativeMethods_002Ecs/@EntryIndexedValue">ForceIncluded</s:String> <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATraceEventNativeMethods_002Ecs_002Fl_003AC_0021_003FUsers_003Fcharlatans_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F25b12134b1124ffbab73641db2e54e5b310830_003F03_003Fcb4b3163_003FTraceEventNativeMethods_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATraceEventSession_002Ecs_002Fl_003AC_0021_003FUsers_003Fcharlatans_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F25b12134b1124ffbab73641db2e54e5b310830_003F4e_003F99d3e433_003FTraceEventSession_002Ecs/@EntryIndexedValue">ForceIncluded</s:String> <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATraceEventSession_002Ecs_002Fl_003AC_0021_003FUsers_003Fcharlatans_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F25b12134b1124ffbab73641db2e54e5b310830_003F4e_003F99d3e433_003FTraceEventSession_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATraceEvent_002Ecs_002Fl_003AC_0021_003FUsers_003Fcharlatans_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F25b12134b1124ffbab73641db2e54e5b310830_003F4d_003F09175cdc_003FTraceEvent_002Ecs/@EntryIndexedValue">ForceIncluded</s:String> <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATraceEvent_002Ecs_002Fl_003AC_0021_003FUsers_003Fcharlatans_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F25b12134b1124ffbab73641db2e54e5b310830_003F4d_003F09175cdc_003FTraceEvent_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
@@ -11,7 +11,7 @@ namespace Shell.ViewModel;
public class NetworkMonitorViewModel : INotifyPropertyChanged public class NetworkMonitorViewModel : INotifyPropertyChanged
{ {
private readonly DispatcherTimer _updateTimer; private readonly DispatcherTimer _updateTimer;
private List<NetworkMonitorHelper1.NetworkInterface> _interfaces; private List<NetworkMonitorHelper.NetworkInterface> _interfaces;
private const string SELECT_ALL_TEXT = "选择全部"; private const string SELECT_ALL_TEXT = "选择全部";
private readonly bool _isDesignMode; private readonly bool _isDesignMode;
@@ -29,9 +29,9 @@ public class NetworkMonitorViewModel : INotifyPropertyChanged
} }
} }
private NetworkInterfaceItem _selectedInterface; private NetworkInterfaceItem? _selectedInterface;
public NetworkInterfaceItem SelectedInterface public NetworkInterfaceItem? SelectedInterface
{ {
get => _selectedInterface; get => _selectedInterface;
set set
@@ -207,7 +207,7 @@ public class NetworkMonitorViewModel : INotifyPropertyChanged
try try
{ {
// 获取所有网络接口 // 获取所有网络接口
_interfaces = NetworkMonitorHelper1.GetNetworkInterfaces(); _interfaces = NetworkMonitorHelper.GetNetworkInterfaces();
// 清除现有项目 // 清除现有项目
NetworkInterfaces.Clear(); NetworkInterfaces.Clear();
@@ -273,7 +273,7 @@ public class NetworkMonitorViewModel : INotifyPropertyChanged
TotalSpeed = "0.00 B/s"; TotalSpeed = "0.00 B/s";
// 重置统计数据,以便立即开始新的统计 // 重置统计数据,以便立即开始新的统计
NetworkMonitorHelper1.ResetStatistics(); NetworkMonitorHelper.ResetStatistics();
} }
private void UpdateDesignTimeSpeed() private void UpdateDesignTimeSpeed()
@@ -334,12 +334,12 @@ public class NetworkMonitorViewModel : INotifyPropertyChanged
try try
{ {
NetworkMonitorHelper1.NetworkSpeed speed; NetworkMonitorHelper.NetworkSpeed speed;
if (SelectedInterface.IsSelectAll) if (SelectedInterface.IsSelectAll)
{ {
// 计算所有接口的总网速 // 计算所有接口的总网速
speed = NetworkMonitorHelper1.CalculateTotalSpeed(); speed = NetworkMonitorHelper.CalculateTotalSpeed();
StatusText = "显示所有网络接口的总网速"; StatusText = "显示所有网络接口的总网速";
} }
else else
@@ -348,7 +348,7 @@ public class NetworkMonitorViewModel : INotifyPropertyChanged
var networkInterface = SelectedInterface.NetworkInterface; var networkInterface = SelectedInterface.NetworkInterface;
if (networkInterface != null) if (networkInterface != null)
{ {
speed = NetworkMonitorHelper1.CalculateSpeedByName(networkInterface.Name); speed = NetworkMonitorHelper.CalculateSpeedByName(networkInterface.Name);
// 显示接口状态 // 显示接口状态
string statusText = $"正在监控: {networkInterface.Name} ({networkInterface.TypeDescription})"; string statusText = $"正在监控: {networkInterface.Name} ({networkInterface.TypeDescription})";
@@ -392,7 +392,7 @@ public class NetworkMonitorViewModel : INotifyPropertyChanged
_updateTimer.Stop(); _updateTimer.Stop();
// 重置统计数据 // 重置统计数据
NetworkMonitorHelper1.ResetStatistics(); NetworkMonitorHelper.ResetStatistics();
// 重新加载接口 // 重新加载接口
LoadNetworkInterfaces(); LoadNetworkInterfaces();
@@ -455,7 +455,7 @@ public class NetworkInterfaceItem
public string TypeDescription { get; set; } public string TypeDescription { get; set; }
public bool IsConnected { get; set; } public bool IsConnected { get; set; }
public bool IsSelectAll { get; set; } public bool IsSelectAll { get; set; }
public NetworkMonitorHelper1.NetworkInterface NetworkInterface { get; set; } public NetworkMonitorHelper.NetworkInterface? NetworkInterface { get; set; }
} }
public class RelayCommand : ICommand public class RelayCommand : ICommand
+24
View File
@@ -0,0 +1,24 @@
/* eslint-disable */
// @ts-nocheck
// Generated by unplugin-vue-components
// Read more: https://github.com/vuejs/core/pull/3399
// biome-ignore lint: disable
export {}
/* prettier-ignore */
declare module 'vue' {
export interface GlobalComponents {
CommandManager: typeof import('./src/components/CommandManager.vue')['default']
IconCommunity: typeof import('./src/components/icons/IconCommunity.vue')['default']
IconDocumentation: typeof import('./src/components/icons/IconDocumentation.vue')['default']
IconEcosystem: typeof import('./src/components/icons/IconEcosystem.vue')['default']
IconSupport: typeof import('./src/components/icons/IconSupport.vue')['default']
IconTooling: typeof import('./src/components/icons/IconTooling.vue')['default']
NetworkConnectionPanel2: typeof import('./src/components/NetworkConnectionPanel2.vue')['default']
NMessageProvider: typeof import('naive-ui')['NMessageProvider']
NVirtualList: typeof import('naive-ui')['NVirtualList']
RouterLink: typeof import('vue-router')['RouterLink']
RouterView: typeof import('vue-router')['RouterView']
TitleBar: typeof import('./src/components/TitleBar.vue')['default']
}
}