Beispiel #1
0
 /// <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;
     }
 }
Beispiel #2
0
        /// <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);
            }
        }