/// <summary> /// 通过路径注册插件(不推荐使用) /// </summary> /// <param name="pluginFullPath">插件全路径</param> /// <param name="classFullName">类全名</param> /// <param name="controllerName">控制器名字</param> public static void MapRoutePlugin(string pluginFullPath, string classFullName, string controllerName) { lock (_ROUTE_LOCK) { ControllerAssmeblyUtil.RegisterByAssmblyPath(pluginFullPath); URL_CONTROLLER_NAME_ROUTE_MAP[controllerName] = classFullName; URL_CONTROLLER_NAME_ROUTE_MAP_[classFullName] = controllerName; } }
/// <summary> /// 注册指定路径的插件 /// </summary> /// <param name="pluginFullPath">插件全路径</param> public static void MapRoutePlugin(string pluginFullPath) { if (File.Exists(pluginFullPath) == false) { throw new FileNotFoundException("指定路径的插件文件不存在,请查看此路径:" + pluginFullPath); } Moon.Orm.Util.LogUtil.Debug("发现插件,PluginFullPath:" + pluginFullPath); var assmebly = ControllerAssmeblyUtil.RegisterByAssmblyPath(pluginFullPath); var allTypes = assmebly.GetTypes(); foreach (var type in allTypes) { if (type.IsClass && type.IsSubclassOf(typeof(BaseController))) { string classFullName = type.FullName; Moon.Orm.Util.LogUtil.Debug("载入插件Controller:" + classFullName); int index = classFullName.LastIndexOf('.'); string userDefineName = null; userDefineName = classFullName.Substring(index + 1); userDefineName = userDefineName.Replace("Controller", "");//去掉Controller得到对应的名字 bool existArea; var areaName = AreaUtil.GetControllerAreaName(type, out existArea); if (existArea) { userDefineName = areaName + "/" + userDefineName; } lock (_ROUTE_LOCK) { URL_CONTROLLER_NAME_ROUTE_MAP[userDefineName] = classFullName; URL_CONTROLLER_NAME_ROUTE_MAP_[classFullName] = userDefineName; } } } lock (_ROUTE_LOCK) { ControllerAssmeblyUtil.RegisterByAssmblyPath(pluginFullPath); } }