XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEExtension.NetCore.AutoConfig

【DLL】自动实现配置文件的存储

公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/XFEExtension.NetCore.AutoConfig

修正README中的内容

85dab0f
XFE工作室室长 <mail@xfegzs.com>
提交于

代码差异

1 个文件 +2 -385
Modified README.md +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 ```