NFinal代碼生成器與其他的代碼生成器不太一樣,只需要運行模塊下的WebComplier.aspx即可生成最終的web層代碼。包括數(shù)據(jù)庫的操作,Router類,
創(chuàng)新互聯(lián)公司主要從事成都做網(wǎng)站、成都網(wǎng)站制作、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)莒縣,10余年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575調(diào)試文件等。附上一段代碼與大家分享
using System; using System.Collections.Generic; using System.Web; using System.IO; using System.Reflection; using System.Text; using System.Xml; using NFinal.Compile; //防止.net 2.0下類自動引入Linq命名空間報錯. namespace System.Linq { delegate void None(); } namespace NFinal { public class Frame { public static string appRoot; public static string AssemblyTitle; public static ListConnectionStrings = new List (); public Frame(string appRoot) { Frame.appRoot = appRoot; string[] fileNames = Directory.GetFiles(appRoot, "*.csproj"); if (fileNames.Length > 0) { AssemblyTitle = Path.GetFileNameWithoutExtension(fileNames[0]); } else { string temp; temp = appRoot.Trim('\\'); AssemblyTitle = temp.Substring(temp.LastIndexOf('\\') + 1); } } /// /// 把基于網(wǎng)站根目錄的絕對路徑改為相對路徑 /// /// ///public static string MapPath(string url) { return appRoot + url.Trim('/').Replace('/', '\\'); } public void GetDB() { //獲取WebConfig中的連接字符串信息 string configFileName = appRoot + "Web.config"; if (File.Exists(configFileName)) { System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); doc.Load(configFileName); System.Xml.XmlNode root = doc.DocumentElement.SelectSingleNode("/configuration"); System.Xml.XmlNodeList nodeList = root.SelectNodes("connectionStrings/add[@connectionString]"); Frame.ConnectionStrings.Clear(); if (nodeList.Count > 0) { System.Xml.XmlElement ele = null; foreach (System.Xml.XmlNode node in nodeList) { ele = node as System.Xml.XmlElement; var connectionString = new NFinal.DB.ConnectionString(); connectionString.name = ele.Attributes["name"].Value; connectionString.value = ele.Attributes["connectionString"].Value; connectionString.provider = ele.Attributes["providerName"].Value; if (connectionString.provider.ToLower().IndexOf("mysql") > -1) { connectionString.type = NFinal.DB.DBType.MySql; } else if (connectionString.provider.ToLower().IndexOf("sqlclient") > -1) { connectionString.type = NFinal.DB.DBType.SqlServer; } else if (connectionString.provider.ToLower().IndexOf("sqlite") > -1) { connectionString.type = NFinal.DB.DBType.Sqlite; } else if (connectionString.provider.ToLower().IndexOf("oracle") > -1) { connectionString.type = NFinal.DB.DBType.Oracle; } else { connectionString.type = NFinal.DB.DBType.Unknown; } Frame.ConnectionStrings.Add(connectionString); } } } //讀取數(shù)據(jù)庫信息 NFinal.DB.Coding.DataUtility dataUtility = null; if (Frame.ConnectionStrings.Count > 0) { NFinal.DB.ConnectionString conStr; NFinal.DB.Coding.DB.DbStore.Clear(); for (int i = 0; i < Frame.ConnectionStrings.Count; i++) { conStr = Frame.ConnectionStrings[i]; if (conStr.type == NFinal.DB.DBType.MySql) { dataUtility = new NFinal.DB.Coding.MySQLDataUtility(conStr.value); dataUtility.GetAllTables(dataUtility.con.Database); NFinal.DB.Coding.DB.DbStore.Add(conStr.name, dataUtility); } else if (conStr.type == NFinal.DB.DBType.Sqlite) { dataUtility = new NFinal.DB.Coding.SQLiteDataUtility(conStr.value); dataUtility.GetAllTables(dataUtility.con.Database); NFinal.DB.Coding.DB.DbStore.Add(conStr.name, dataUtility); } else if (conStr.type == NFinal.DB.DBType.SqlServer) { dataUtility = new NFinal.DB.Coding.SQLDataUtility(conStr.value); dataUtility.GetAllTables(dataUtility.con.Database); NFinal.DB.Coding.DB.DbStore.Add(conStr.name, dataUtility); } else if (conStr.type == NFinal.DB.DBType.Oracle) { #if NET2 #else dataUtility = new NFinal.DB.Coding.OracleDataUtility(conStr.value); dataUtility.GetAllTables(dataUtility.con.Database); NFinal.DB.Coding.DB.DbStore.Add(conStr.name, dataUtility); #endif } } } } /// /// 創(chuàng)建主路由 /// /// public void CreateMain(string[] apps) { VTemplate.Engine.TemplateDocument doc = null; doc=new VTemplate.Engine.TemplateDocument(MapPath("NFinal/Template/Main.tpl"), System.Text.Encoding.UTF8); doc.SetValue("project", NFinal.Frame.AssemblyTitle); doc.SetValue("apps", apps); doc.SetValue("ControllerSuffix", "Controller"); doc.RenderTo(MapPath("NFinal/Main.cs"), System.Text.Encoding.UTF8); } ////// 獲取所有的應(yīng)用模塊 /// ///public string[] GetApps() { string webConfigFileName= MapPath("/Web.config"); XmlDocument doc = new XmlDocument(); doc.Load(webConfigFileName); XmlNode appsNode = doc.DocumentElement.SelectSingleNode("appSettings/add[@key='Apps']"); string[] Apps = null; if (appsNode != null && appsNode.Attributes.Count > 0 && appsNode.Attributes["value"] != null) { Apps = appsNode.Attributes["value"].Value.Split(','); } else { Apps =new string[] {"App"}; } return Apps; } } }
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。