返回提交历史
Modified
README.md
+2
-385
XFEstudio/XFEExtension.NetCore.AutoConfig
修正README中的内容
85dab0f
代码差异
1 个文件
+2
-385
@@ -1,55 +1,8 @@
1
# XFEExtension (XFEExtension)
1
# XFEExtension.NetCore.AutoConfig
2
2
3
3
## 描述
4
4
5
XFEExtension是一个C#的DLL库,旨在优化C#代码中常用语句的使用,并提供更简洁的访问方式,快速搭建服务器/客户端,免费ChatGPTAPI接口,免费通讯服务器,XFE下载器,新增格式等
6
7
## 用途
8
9
XFEExtension库适用于各种C#项目,特别适合在需要提高代码可读性的情况下使用。它包含了许多常见操作的拓展方法,使得代码编写更加高效和简便。以下是一些XFEExtension的用途示例:
10
11
- **简化代码访问:** XFEExtension提供了更简洁的语法,使得代码中的访问操作更加清晰和易读。
12
13
- **优化性能:** 通过使用XFEExtension,您可以执行各种性能优化操作,提高应用程序的效率。
14
15
- **加速开发:** 通过减少样板代码,XFEExtension可以加速项目的开发过程,同时提高代码的可维护性。
16
17
18
## 设置csproj文件配置
19
20
```xml
21
<PropertyGroup>
22
<!--设置是否启用自动配置文件-->
23
<AutoConfig>true</AutoConfig>
24
<!--设置是否启用自动路径-->
25
<AutoPath>true</AutoPath>
26
<!--设置是否启用TODO待办任务提醒-->
27
<TodoList>true</TodoList>
28
<!--设置待办任务的提示级别-->
29
<TodoListWarningLevel>3</TodoListWarningLevel>
30
</PropertyGroup>
31
```
32
33
34
# 示例(使用前记得进行相应的引用)
35
36
37
## TODO待办任务提醒
38
39
```csharp
40
//TODO: 这是一个待办任务,使用默认提示级别
41
42
//TODO:1 这是一个待办任务,使用提示级别
43
44
//TODO:3 这是一个待办任务,使用错误提示级别
45
46
//提示级别:0-隐藏,1-提示,2-警告,3-错误
47
```
48
5
XFEExtension.NetCore.AutoConfig是一个可以自动实现配置文件存储的工具
49
6
50
7
## 自动实现配置文件的存储
51
8
@@ -161,340 +114,4 @@ partial class SystemConfig
161
114
Console.WriteLine($"设置了Age:从{Age}变为了{value}");
162
115
}
163
116
}
164
```
165
166
167
## 使用LANDeviceDetector来检测本地局域网内的所有设备
168
169
#### 基础用法
170
171
```csharp
172
var lANDeviceDetector = new LANDeviceDetector();
173
lANDeviceDetector.DeviceFind += (sender) =>
174
{
175
Console.WriteLine($"IP地址:{sender.IPAddress}\t设备名称:{sender.DeviceName}");
176
};
177
await lANDeviceDetector.StartDetecting();
178
```
179
180
#### 自定义扫描频段
181
182
```csharp
183
var lANDeviceDetector = new LANDeviceDetector("100.73.121.*");//这将扫描100.73.121.1到100.73.121.255的IP地址
184
lANDeviceDetector.DeviceFind += (sender) =>
185
{
186
Console.WriteLine($"IP地址:{sender.IPAddress}\t设备名称:{sender.DeviceName}");
187
};
188
await lANDeviceDetector.StartDetecting();
189
```
190
191
#### 自定义超时
192
193
```csharp
194
var lANDeviceDetector = new LANDeviceDetector("100.73.121.*", 2000);//这将会设置超时为2000ms
195
lANDeviceDetector.DeviceFind += (sender) =>
196
{
197
Console.WriteLine($"IP地址:{sender.IPAddress}\t设备名称:{sender.DeviceName}");
198
};
199
await lANDeviceDetector.StartDetecting();
200
```
201
202
203
## 使用X方法分析对象信息,简化调试流程
204
205
#### 在控制台输出(仅适用于C#的控制台应用程序)
206
207
```csharp
208
var testClass = new TestClass("测试名称", "测试描述", 15);//假如这是你需要分析的某个对象
209
testClass.X();//这会将该对象的所有信息输出到控制台
210
```
211
212
#### 在调试信息中输出(使用与所有类型的C#程序)
213
214
```csharp
215
var testClass = new TestClass("测试名称", "测试描述", 15);//假如这是你需要分析的某个对象
216
testClass.XL();//这会将该对象的所有信息输出到调试信息输出中
217
```
218
219
220
## XFE的ChatGPT使用示例
221
222
#### 最简单的用法
223
224
```csharp
225
//询问GPT并接收回复
226
var result = await XFEChatGPT.SendAndGetGPTResponse("你好");
227
Console.WriteLine(result);
228
```
229
230
#### 一般用法
231
232
```csharp
233
//使用XFEChatGPT类来进行GPT的交互
234
XFEChatGPT xFEChatGPT = new XFEChatGPT("你是一个人工智能AI", true);
235
236
//订阅事件
237
xFEChatGPT.XFEChatGPTMessageReceived += (sender, e) =>
238
{
239
switch (e.GenerateState)
240
{
241
case GenerateState.Start:
242
Console.Write("【输出开始】ChatGPT:");
243
break;
244
case GenerateState.Continue:
245
Console.Write(e.Message);
246
break;
247
case GenerateState.End:
248
Console.WriteLine("【输出完成】");
249
break;
250
case GenerateState.Error:
251
Console.WriteLine($"【发生错误】{e.Message}");
252
break;
253
default:
254
break;
255
}
256
};
257
258
//输入询问内容
259
var askContent = Console.ReadLine();
260
261
//发送生成随机ID并询问内容
262
xFEChatGPT.SendGPTMessage(Guid.NewGuid().ToString(), askContent);
263
```
264
265
#### 推荐用法
266
267
```csharp
268
//创建有记忆功能的XFEChatGPT对象
269
MemorableXFEChatGPT memorableXFEChatGPT = new MemorableXFEChatGPT();
270
271
//创建一个新的对话并设置System内容
272
memorableXFEChatGPT.CreateDialog("新的对话ID", "你是一个由寰宇朽力网络科技开发的人工智能AI", true, true);
273
274
//订阅消息接收事件
275
memorableXFEChatGPT.XFEChatGPTMessageReceived += (sender, e) =>
276
{
277
switch (e.GenerateState)
278
{
279
case GenerateState.Start:
280
Console.Write("【输出开始】ChatGPT:");
281
break;
282
case GenerateState.Continue:
283
Console.Write(e.Message);
284
break;
285
case GenerateState.End:
286
Console.WriteLine("【输出完成】");
287
break;
288
case GenerateState.Error:
289
Console.WriteLine($"【发生错误】{e.Message}");
290
break;
291
default:
292
break;
293
}
294
};
295
296
//读取询问内容
297
var askContent = Console.ReadLine();
298
299
//填写之前创建的对话ID,生成随机的消息ID,并输入刚刚读取的询问内容
300
memorableXFEChatGPT.AskChatGPT("新的对话ID", Guid.NewGuid().ToString(), askContent);
301
```
302
303
304
## 自动生成实现类
305
306
```csharp
307
[CreateImpl]
308
abstract class TestAbstractClass(int num)
309
{
310
public int Num { get; set; } = num;
311
}
312
313
class Program
314
{
315
static void Main(string[] args)
316
{
317
var testAbstractClass = new TestAbstractClassImpl(123);
318
Console.WriteLine(testAbstractClass.Num);
319
}
320
}
321
```
322
323
324
## IO流拓展操作示例
325
326
```csharp
327
// 使用XFEExtension来简化文件读取/写入操作
328
"Hello World!".WriteIn("test.txt");
329
string txt = "test.txt".ReadOut();
330
```
331
332
333
## XEA加密算法示例
334
335
```csharp
336
// 使用XFEExtension来进行加密操作
337
string text = "这是一段将要加密的文本";
338
$"未加密内容:{text}".CW();
339
string password = "这是一个秘钥";
340
string encrypt = text.XEAEncrypt(password);//加密
341
Console.WriteLine("加密内容:" + encrypt);
342
Console.WriteLine("解密内容:" + encrypt.XEADecrypt(password));//解密
343
```
344
345
346
## 特性操作示例
347
348
```csharp
349
// 使用XFEExtension来简化特性读取操作
350
string str = testObject.GetAttribute<string>();
351
```
352
353
354
## 使用XUnit测试框架
355
356
```csharp
357
[CTest]
358
class TestClass : XFECode
359
{
360
[MTest]
361
void Test()
362
{
363
Assert(true, "断言内容");
364
}
365
}
366
public class Program : XFECode
367
{
368
public static void Main(string[] args)
369
{
370
Pause();
371
}
372
}
373
```
374
375
376
## 快速搭建网络通讯服务器
377
378
```csharp
379
public class CustomServer
380
{
381
CyberCommServer CyberCommServer { get; } = new("http://127.0.0.1:19019/");
382
public async Task StartServer()
383
{
384
CyberCommServer.ServerStarted += CyberCommServer_ServerStarted;
385
CyberCommServer.ConnectionClosed += CyberCommServer_ConnectionClosed;
386
CyberCommServer.ClientConnected += CyberCommServer_ClientConnected;
387
CyberCommServer.MessageReceived += CyberCommServer_MessageReceived;
388
await CyberCommServer.StartCyberCommServer();
389
}
390
391
private void CyberCommServer_MessageReceived(object? sender, CyberCommServerEventArgs e)
392
{
393
e.ReplyMessage("服务器已接收消息");
394
Console.WriteLine($"收到客户端[{e.IpAddress}]消息:{e.TextMessage}");//明文传输实例
395
}
396
397
private void CyberCommServer_ClientConnected(object? sender, CyberCommServerEventArgs e)
398
{
399
Console.WriteLine($"新客户端连接:{e.IpAddress}");
400
}
401
402
private void CyberCommServer_ConnectionClosed(object? sender, CyberCommServerEventArgs e)
403
{
404
Console.WriteLine($"客户端[{e.IpAddress}]断开连接");
405
}
406
407
private void CyberCommServer_ServerStarted(object? sender, EventArgs e)
408
{
409
Console.WriteLine("服务器已启动");
410
}
411
}
412
```
413
414
415
## 快速搭建网络通讯客户端
416
417
```csharp
418
public class CustomClient
419
{
420
CyberCommClient CyberCommClient { get; } = new("http://127.0.0.1:19019/");
421
public async Task StartClient()
422
{
423
CyberCommClient.Connected += CyberCommClient_Connected;
424
CyberCommClient.ConnectionClosed += CyberCommClient_ConnectionClosed;
425
CyberCommClient.MessageReceived += CyberCommClient_MessageReceived;
426
await CyberCommClient.StartCyberCommClient();
427
}
428
429
private void CyberCommClient_MessageReceived(object? sender, CyberCommClientEventArgs e)
430
{
431
Console.WriteLine($"收到消息:{e.TextMessage}");//接收明文消息
432
//此处可以进行消息回复
433
//e.ReplyMessage();
434
}
435
436
private void CyberCommClient_ConnectionClosed(object? sender, EventArgs e)
437
{
438
Console.WriteLine("与服务器断开连接");
439
}
440
441
private void CyberCommClient_Connected(object? sender, EventArgs e)
442
{
443
Console.WriteLine("已连接到服务器");
444
CyberCommClient.SendTextMessage("这是一条测试消息");//以明文消息为示例
445
}
446
}
447
```
448
449
450
## 使用XCC网络通讯API接口快速搭建聊天室
451
452
```csharp
453
XCCNetWork xCCNetWork = new();//创建XCC网络通讯基础
454
var group = xCCNetWork.CreateGroup("测试群组", "测试人员");//创建网络通讯中的群组,输入群组名,群内名称
455
#region 订阅事件
456
xCCNetWork.Connected += (sender, e) =>
457
{
458
Console.WriteLine($"群组:{e.Group.GroupId}\t连接成功");
459
group.SendTextMessage("测试消息");
460
};
461
xCCNetWork.ConnectionClosed += (sender, e) =>
462
{
463
Console.WriteLine($"群组:{e.Group.GroupId}\t断开连接");
464
};
465
xCCNetWork.TextMessageReceived += (sender, e) =>
466
{
467
Console.WriteLine($"群组:{e.Group.GroupId}\t收到文本消息:{e.TextMessage}");
468
};
469
#endregion
470
await group.StartXCC();//启动该群组的网络通讯
471
```
472
473
474
## 使用XFE下载器来加速下载文件(支持继续上次下载、多线程加速下载等操作)
475
476
```csharp
477
XFEDownloader xFEDownloader = new()
478
{
479
DownloadUrl = "https://www.nuget.org/api/v2/package/XFE%E5%90%84%E7%B1%BB%E6%8B%93%E5%B1%95.NetCore/1.2.2",
480
SavePath = "XFEExtension.NetCore.nuget",
481
FileSegmentCount = 9 //设置9个线程来加速下载,建议数量不超过15个
482
};
483
xFEDownloader.BufferDownloaded += (sender, e) =>
484
{
485
Console.WriteLine($"进度:{e.DownloadedBufferSize.FileSize()}/{e.TotalBufferSize?.FileSize()}");
486
};
487
await xFEDownloader.Download();
488
117
```