From bc61e250f395fcc944835cb762499ed26fdcad81 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=B0=83=E7=9A=AE=E8=B1=86=E5=B9=B2?= <catrol@qq.com>
Date: Sun, 2 Jul 2023 11:57:17 +0000
Subject: [PATCH] =?UTF-8?q?=F0=9F=93=84=20Docs(Loaders):=20Updated=20cshar?=
 =?UTF-8?q?p=20loader.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 docs/rules/loader/items/loader-csharp.md | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/docs/rules/loader/items/loader-csharp.md b/docs/rules/loader/items/loader-csharp.md
index aaa6eb93..082aa3ec 100644
--- a/docs/rules/loader/items/loader-csharp.md
+++ b/docs/rules/loader/items/loader-csharp.md
@@ -31,3 +31,22 @@ description: 关于适用于 C# 的 Loader 的设计思路与技术细节
 - `CommunicationManager.cs`: 通讯管理器, 负责处理与 KitX Dashboard 的通讯
 - `PluginManager.cs`: 插件管理器, 调度 KitX Plugin 的生命周期
 
+### 执行流程
+
+1. 处理命令行启动参数
+   1. 得到 KitX Dashboard 插件服务器地址
+      1. 随即实例化 `CommunicationManager` 并开始 TCP 通讯
+   2. 得到插件跟启动文件路径
+      1. 随即实例化 `PluginManager.cs`
+      2. 传入发送信息的回调函数
+      3. 加载插件 (通过 MEF 框架)
+         1. 从插件实现了 `IIdentityInterface` 接口的类中整理 `PluginStruct` 实例
+         2. 向仪表盘发送 Json 序列化的 `PluginStruct`, 格式: "PluginStruct: `content`"
+         3. 获取插件实现了 `IController` 接口的类实例 `controller`
+         4. 调用 `controller.SetRootPath` 向插件传入插件文件所在路径
+         5. 调用 `controller.SetSendCommandAction` 向插件传入发送 `Command` 的回调函数
+         6. 调用 `controller.Start` 开始插件生命周期
+
+
+
+