public override MethodInfo CreateMethodInfo(string pluginname, string controllername, string methodname, AbstractController controller) { string pname = pluginname; string cname = controllername; ModulePlugin mp; WcfControllerAttributeInfo cattr = AppPluginManage.GetPluginWcfControllerAttributeInfo(pname, cname, out mp); if (cattr == null) { throw new Exception("插件中没有此控制器名"); } WcfMethodAttributeInfo mattr = cattr.MethodList.Find(x => x.methodName == methodname); if (mattr == null) { throw new Exception("控制器中没有此方法名"); } if (mattr.dbkeys != null && mattr.dbkeys.Count > 0) { controller.BindMoreDb(controller.oleDb, "default"); foreach (string dbkey in mattr.dbkeys) { EFWCoreLib.CoreFrame.DbProvider.AbstractDatabase _Rdb = EFWCoreLib.CoreFrame.DbProvider.FactoryDatabase.GetDatabase(dbkey); _Rdb.WorkId = controller.LoginUserInfo.WorkId; //创建数据库连接 controller.BindMoreDb(_Rdb, dbkey); } } return(mattr.methodInfo); }
/// <summary> /// 默认数据库 /// </summary> /// <returns></returns> public static AbstractDatabase GetDatabase() { AbstractDatabase _oleDb = null; _oleDb = new EntLibDb(); //string dbtype = System.Configuration.ConfigurationManager.AppSettings["DbType"].ToString();//获取默认数据库连接 //switch (dbtype) //{ // case "SqlServer": // _oleDb.DbType = DatabaseType.SqlServer2005; // break; // case "SqlServer2000": // _oleDb.DbType = DatabaseType.SqlServer2000; // break; // case "Oracle": // _oleDb.DbType = DatabaseType.Oracle; // break; // case "MySQL": // _oleDb.DbType = DatabaseType.MySQL; // break; // case "IbmDb2": // _oleDb.DbType = DatabaseType.IbmDb2; // break; // case "MsAccess": // _oleDb.DbType = DatabaseType.MsAccess; // break; // default: // _oleDb.DbType = DatabaseType.UnKnown; // break; //} return(_oleDb); }