diff --git a/Falcon.SugarApi/Plugin/FindPluginService.cs b/Falcon.SugarApi/Plugin/FindPluginService.cs
new file mode 100644
index 0000000..5c84167
--- /dev/null
+++ b/Falcon.SugarApi/Plugin/FindPluginService.cs
@@ -0,0 +1,63 @@
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+using System;
+using System.IO;
+using System.Reflection;
+using System.Runtime.Loader;
+
+namespace Falcon.SugarApi.Plugin
+{
+ ///
+ /// 查找插件服务
+ ///
+ public static class FindPluginService
+ {
+ ///
+ /// 查找并增加插件服务
+ ///
+ /// 程序集名称
+ /// 服务集合
+ /// 配置
+ public static void FindAddPluginService(string assemblyFile,IServiceCollection services,IConfiguration configuration) {
+ if(!File.Exists(assemblyFile)) {
+ throw new FileNotFoundException($"插件文件没有找到:{assemblyFile}");
+ }
+ //var doMain = AppDomain.CurrentDomain;
+ //var assembly = doMain.Load(assemblyFile);
+
+ var dm = new AssemblyLoadContext(null,false);
+ var assembly = dm.LoadFromAssemblyPath(assemblyFile);
+
+ FindAddPluginService(assembly,services,configuration);
+ }
+ ///
+ /// 查找并增加插件服务
+ ///
+ /// 程序集
+ /// 服务集合
+ /// 配置
+ public static void FindAddPluginService(Assembly assembly,IServiceCollection services,IConfiguration configuration) {
+ var name = typeof(IServicePlugin).FullName;
+ if(name == null) {
+ return;
+ }
+ foreach(Type type in assembly.GetTypes()) {
+ if(type == null || !type.IsPublic) {
+ continue;
+ }
+ if(type.GetInterface(name) == null) {
+ continue;
+ }
+ var tname = type.FullName;
+ if(tname == null) {
+ continue;
+ }
+ var obj = type.Assembly.CreateInstance(tname) as IServicePlugin;
+ if(obj == null) {
+ continue;
+ }
+ obj.AddServices(services,configuration);
+ }
+ }
+ }
+}
diff --git a/Falcon.SugarApi/Plugin/IServicePlugin.cs b/Falcon.SugarApi/Plugin/IServicePlugin.cs
new file mode 100644
index 0000000..4230959
--- /dev/null
+++ b/Falcon.SugarApi/Plugin/IServicePlugin.cs
@@ -0,0 +1,19 @@
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+
+namespace Falcon.SugarApi.Plugin
+{
+ ///
+ /// 插件接口。插件通过实现此接口注册服务、配置、后台线程等。
+ ///
+ public interface IServicePlugin
+ {
+ ///
+ /// 注册服务
+ ///
+ /// 服务集合
+ /// 配置
+ /// 服务集合
+ IServiceCollection AddServices(IServiceCollection services,IConfiguration configuration);
+ }
+}
diff --git a/Falcon.SugarApi/Plugin/PluginSetting.cs b/Falcon.SugarApi/Plugin/PluginSetting.cs
new file mode 100644
index 0000000..345b8ce
--- /dev/null
+++ b/Falcon.SugarApi/Plugin/PluginSetting.cs
@@ -0,0 +1,19 @@
+using System.Collections.Generic;
+
+namespace Falcon.SugarApi.Plugin
+{
+ ///
+ /// 插件设置
+ ///
+ public class PluginSetting
+ {
+ ///
+ /// 插件名称
+ ///
+ public string name { get; set; }
+ ///
+ /// 插件文件
+ ///
+ public string file { get; set; }
+ }
+}
diff --git a/Falcon.SugarApi/Plugin/PluginSettingList.cs b/Falcon.SugarApi/Plugin/PluginSettingList.cs
new file mode 100644
index 0000000..4976003
--- /dev/null
+++ b/Falcon.SugarApi/Plugin/PluginSettingList.cs
@@ -0,0 +1,9 @@
+using System.Collections.Generic;
+
+namespace Falcon.SugarApi.Plugin
+{
+ ///
+ /// 插件设置列表
+ ///
+ public class PluginSettingList:List { }
+}
diff --git a/Falcon.SugarApi/Plugin/Readme.md b/Falcon.SugarApi/Plugin/Readme.md
new file mode 100644
index 0000000..6cebce9
--- /dev/null
+++ b/Falcon.SugarApi/Plugin/Readme.md
@@ -0,0 +1,20 @@
+## ģ
+
+### Ŀ
+
+1. ϣҵģԲķʽС
+1. ĿȻDLLļĿ¼.
+1. վʱͨļ̬زضע᷽עᡣ
+
+### ʵַʽ
+ 1. ҵģ飺ʵIServicePiuginӿʵֲģעᡣ
+ 1.1 עControllerδҵע᷽
+ 1.2 ע̨BackGroundTaskʵ֣עᵽڡ
+ 1.3 עOptionsࡣ
+ 2. ģ飺λFalcon.SugarApi.Pluginڡ
+ 2.1 IServicePiuginӿڡ
+ 2.2 FindPluginServiceطڷҵģIServicePiuginʵ֡
+ 3. WebAPIģ飺վFindPluginServiceطעҵģĴעᡣ
+
+### ĿǰҪ
+1. ҵģעControllerá