AppConfig.cs
4.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
using System;
using System.Configuration;
namespace CNCFanucDataReading
{
/// <summary>
/// 应用程序配置
/// </summary>
public static class AppConfig
{
static AppConfig()
{
// 初始化时从配置文件加载
ReloadConfig();
}
/// <summary>
/// 加载配置
/// </summary>
public static void ReloadConfig()
{
//Iot数据配置
DaqClientId = GetAppSetting("DaqClientId");
ProjectKeys = GetAppSetting("ProjectKeys");
FactoryCode = GetAppSetting("FactoryCode");
EquipmentTypeCode = GetAppSetting("EquipmentTypeCode");
DAQClientInterval = GetAppSetting<int>("DAQClientInterval", 5000);
// 连接字符串
ConnectionString = GetConnectionString("DefaultConnection");
// 监控配置
MonitorInterval = GetAppSetting<int>("MonitorInterval", 5000);
FanucTimeout = GetAppSetting<int>("FanucTimeout", 5000);
// 应用配置
ApplicationName = GetAppSetting("ApplicationName", "CNCFanuc数据采集系统");
Version = GetAppSetting("Version", "1.0.0");
}
// ========== Iot数据配置 ==========
/// <summary>
/// Iot客户端ID
/// </summary>
public static string DaqClientId { get; private set; }
/// <summary>
/// 项目号
/// </summary>
public static string ProjectKeys { get; private set; }
/// <summary>
/// 厂房编号
/// </summary>
public static string FactoryCode { get; private set; }
/// <summary>
/// 监控间隔(毫秒)
/// </summary>
public static int DAQClientInterval { get; private set; }
/// <summary>
///设备类型
/// </summary>
public static string EquipmentTypeCode { get; private set; }
// ========== 连接字符串配置 ==========
/// <summary>
/// 默认连接字符串
/// </summary>
public static string ConnectionString { get; private set; }
// ========== 设备监控配置 ==========
/// <summary>
/// 监控间隔(毫秒)
/// </summary>
public static int MonitorInterval { get; private set; }
// ========== Fanuc设备配置 ==========
/// <summary>
/// Fanuc超时时间(毫秒)
/// </summary>
public static int FanucTimeout { get; private set; }
// ========== 应用配置 ==========
/// <summary>
/// 应用名称
/// </summary>
public static string ApplicationName { get; private set; }
/// <summary>
/// 版本号
/// </summary>
public static string Version { get; private set; }
// ========== 辅助方法 ==========
/// <summary>
/// 获取连接字符串
/// </summary>
public static string GetConnectionString(string name)
{
try
{
var connectionString = ConfigurationManager.ConnectionStrings[name];
return connectionString?.ConnectionString ?? string.Empty;
}
catch (Exception ex)
{
Console.WriteLine($"读取连接字符串 {name} 失败: {ex.Message}");
return string.Empty;
}
}
/// <summary>
/// 获取应用程序设置
/// </summary>
public static string GetAppSetting(string key, string defaultValue = "")
{
try
{
return ConfigurationManager.AppSettings[key] ?? defaultValue;
}
catch
{
return defaultValue;
}
}
/// <summary>
/// 获取应用程序设置(泛型版本)
/// </summary>
public static T GetAppSetting<T>(string key, T defaultValue = default)
{
try
{
var value = ConfigurationManager.AppSettings[key];
if (string.IsNullOrEmpty(value))
return defaultValue;
return (T)Convert.ChangeType(value, typeof(T));
}
catch
{
return defaultValue;
}
}
}
}