开发框架提供两个方案加载业务模块
开发框架提供两个方案加载业务模块
开发框架提供两个方案加载业务模块:
1.从帐套库的sys_ModuleFileList表获取模块文件清单表
C# Code:
DataTable fileList = CommonData.GetDataDict("sys_ModuleFileList");
_Modules = loader.GetModuleList(fileList);//从运行目录中搜索模块文件
//来源:C/S框架网(www.csframework.com) QQ:1980854898
DataTable fileList = CommonData.GetDataDict("sys_ModuleFileList");
_Modules = loader.GetModuleList(fileList);//从运行目录中搜索模块文件
//来源:C/S框架网(www.csframework.com) QQ:1980854898
2.枚举程序目录下所有DLL文件
C# Code:
//2.枚举程序目录下所有DLL文件
_Modules = loader.GetModuleList("CSFramework*.DLL");
//来源:C/S框架网(www.csframework.com) QQ:1980854898
//2.枚举程序目录下所有DLL文件
_Modules = loader.GetModuleList("CSFramework*.DLL");
//来源:C/S框架网(www.csframework.com) QQ:1980854898
如何更新?
1. 打开ModuleLoader.cs文件,增加下面两个方法。
2. 打开ModuleManager.cs文件,修改LoadModules()方法。

方案2的源码:
C# Code:
/// <summary>
/// 枚举程序目录,获取模块列表,转换为ModuleInfo集合.
/// </summary>
/// <param name="searchPattern">查找的文件</param>
/// <returns></returns>
public virtual IList<ModuleInfo> GetModuleList(string searchPattern)
{
try
{
string[] files = null; //模块文件(*.dll)
IList<ModuleInfo> list = new List<ModuleInfo>();
if (Directory.Exists(MODULE_PATH))
files = Directory.GetFiles(MODULE_PATH, searchPattern);
foreach (string mod in files)
{
Assembly asm = null;
try
{
//加载.Net Framework DLL文件
asm = Assembly.LoadFile(mod);
}
catch { continue; }
ModuleID id = GetModuleID(asm);
string name = GetCurrentModuleName();
if (id != ModuleID.None)
{
ModuleInfo m = new ModuleInfo(asm, id, name, mod);
list.Add(m);
}
}
SortModule(list); //模块排序.
return list;
}
catch (Exception ex)
{
Msg.ShowException(ex);
return null;
}
}
/// <summary>
/// 模块排序
/// </summary>
/// <param name="list"></param>
public virtual void SortModule(IList<ModuleInfo> list)
{
int i = 0, j = 1;
ModuleInfo temp;
bool done = false;
while ((j < list.Count) && (!done))
{
done = true;
for (i = 0; i < list.Count - j; i )
{
if ((list[i] as ModuleInfo).ModuleID > (list[i 1] as ModuleInfo).ModuleID)
{
done = false;
temp = list[i];
list[i] = list[i 1];
list[i 1] = temp;
}
}
}
}
//来源:C/S框架网(www.csframework.com) QQ:1980854898
/// <summary>
/// 枚举程序目录,获取模块列表,转换为ModuleInfo集合.
/// </summary>
/// <param name="searchPattern">查找的文件</param>
/// <returns></returns>
public virtual IList<ModuleInfo> GetModuleList(string searchPattern)
{
try
{
string[] files = null; //模块文件(*.dll)
IList<ModuleInfo> list = new List<ModuleInfo>();
if (Directory.Exists(MODULE_PATH))
files = Directory.GetFiles(MODULE_PATH, searchPattern);
foreach (string mod in files)
{
Assembly asm = null;
try
{
//加载.Net Framework DLL文件
asm = Assembly.LoadFile(mod);
}
catch { continue; }
ModuleID id = GetModuleID(asm);
string name = GetCurrentModuleName();
if (id != ModuleID.None)
{
ModuleInfo m = new ModuleInfo(asm, id, name, mod);
list.Add(m);
}
}
SortModule(list); //模块排序.
return list;
}
catch (Exception ex)
{
Msg.ShowException(ex);
return null;
}
}
/// <summary>
/// 模块排序
/// </summary>
/// <param name="list"></param>
public virtual void SortModule(IList<ModuleInfo> list)
{
int i = 0, j = 1;
ModuleInfo temp;
bool done = false;
while ((j < list.Count) && (!done))
{
done = true;
for (i = 0; i < list.Count - j; i )
{
if ((list[i] as ModuleInfo).ModuleID > (list[i 1] as ModuleInfo).ModuleID)
{
done = false;
temp = list[i];
list[i] = list[i 1];
list[i 1] = temp;
}
}
}
}
//来源:C/S框架网(www.csframework.com) QQ:1980854898

其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
