src/Framework/Module/Module.GenericHost/ModuleCollection.cs
(完整代码) 2KBusing System.IO;
using System.Linq;
using NetModular.Lib.Module.Abstractions;
using NetModular.Lib.Utils.Core.Helpers;
using Newtonsoft.Json;
namespace NetModular.Lib.Module.GenericHost
{
public class ModuleCollection : ModuleCollectionAbstract
{
/// <summary>
/// 加载程序集信息
/// </summary>
private void LoadAssemblyDescriptor(ModuleDescriptor moduleDescriptor)
{
//此处默认模块命名空间前缀与当前项目相同
var assemblyDescriptor = new ModuleAssemblyDescriptor
{
Domain = AssemblyHelper.LoadByNameEndString($"Module.{moduleDescriptor.Code}.Domain"),
Infrastructure = AssemblyHelper.LoadByNameEndString($"Module.{moduleDescriptor.Code}.Infrastructure"),
Application = AssemblyHelper.LoadByNameEndString($"Module.{moduleDescriptor.Code}.Application"),
Quartz = AssemblyHelper.LoadByNameEndString($"Module.{moduleDescriptor.Code}.Quartz")
};
CheckAssemblyDescriptor(moduleDescriptor, assemblyDescriptor);
moduleDescriptor.AssemblyDescriptor = assemblyDescriptor;
}
protected override void LoadDescriptor(DirectoryInfo moduleDir, StreamReader jsonReader)
{
var moduleDescriptor = JsonConvert.DeserializeObject<ModuleDescriptor>(jsonReader.ReadToEnd());
if (moduleDescriptor != null)
{
//判断是否已存在
if (!Collection.Any(m => m.Name.Equals(moduleDescriptor.Name)))
{
//加载程序集信息
LoadAssemblyDescriptor(moduleDescriptor);
//加枚举信息
LoadEnumDescriptors(moduleDescriptor);
//加载服务配置器
LoadServicesConfigurator(moduleDescriptor);
//加载初始化数据脚本信息
LoadInitDataScript(moduleDescriptor, moduleDir);
Add(moduleDescriptor);
}
}
}
}
}
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
