1.利用反射获取当前程序集下的所有控制器和方法,拼接后写入到数据库。
public void GetRightInfo() { var ControllerIDMax = db.rights_info.Select(p => p.RightsID).Max() + 1; var controllerTypes = Assembly.GetExecutingAssembly().GetTypes().Where(p => typeof(IController).IsAssignableFrom(p)); foreach (var item in controllerTypes) { var actionMethods = item.GetMethods().Where(q => q.ReturnType.Name == "ActionResult"); foreach (var action in actionMethods) { var rightsName = item.Name.Replace("Controller", "").ToLower() + "/" + action.Name.ToLower(); var ControllerInfo = new rights_info() { RightsID = ControllerIDMax, RightsName =rightsName }; if (db.rights_info.Where(p => p.RightsName == rightsName).Count() == 0) { db.rights_info.AddObject(ControllerInfo); ControllerIDMax++; } } } db.SaveChanges(); }