public static void CreateDom() { AscxDom ctlDom = new AscxDom(); ctlDom.Header = "<table style=\"width:100%;\">"; ctlDom.Mapping_Boolean = "<tr><td colspan=\"2\"><asp:CheckBox ID=\"_name_\" runat=\"server\" Checked=\"_defaultvalue_\" Text=\"_desc_\" style=\"width:100%;\"/></td></tr>"; ctlDom.Mapping_DateTime = "<tr><td align=\"right\">_desc_</td><td><asp:TextBox ID=\"_name_\" runat=\"server\" MaxLength=\"_lenght_\">_defaultvalue_</asp:TextBox></td></tr>"; ctlDom.Mapping_Decimal = ctlDom.Mapping_DateTime; ctlDom.Mapping_String = ctlDom.Mapping_DateTime; ctlDom.Mapping_Unknow = ctlDom.Mapping_DateTime; ctlDom.Footer = "</table>"; XmlSerializer xs = new XmlSerializer(typeof(AscxDom)); MemoryStream ms = new MemoryStream(); xs.Serialize(ms, ctlDom); System.IO.File.WriteAllBytes("c:\\WebUserControl.KeelTemplate", ms.ToArray()); }
public WebFormBaseGengerator(Project pjt1, string ctlname, List <SQLTableInfo> stltmp) { pjt = pjt1; stl = stltmp; Common.ShowInfo("正在准备控件" + ctlname); Solution2 slu = (Solution2)Common.chDTE.Solution; string itmname = ctlname + ".ascx";// Kit.GetProjectLaneExt(Kit.GetProjectLangType(pjt)); if (itmname == null) { throw new Exception("错误002 不支持此项目类型"); } pi = Kit.GetProjectItemByName(pjt, itmname); if (pi != null) { pi.Delete(); } VsWebSite.VSWebSite ws = pjt.Object as VsWebSite.VSWebSite; try { DeleteFile(itmname); if (ws != null) { pi = ws.AddFromTemplate("", "WebUserControl.vstemplate", Kit.GetProjectLangStr2(Kit.GetProjectLangType(pjt)), itmname, true, "", ""); } else { if (IsWebApplication()) { //WAProjectExtender wpe = pjt.get_Extender("WebApplication") as WAProjectExtender; string pit = slu.GetProjectItemTemplate("WebUserControl.zip", Kit.GetProjectLangStr(Kit.GetProjectLangType(pjt)) + "\\Web"); if (pit == null) { throw new Exception("错误003 未能得到对应项目模板,请确认此语言项目是否正确安装!"); } pi = pjt.ProjectItems.AddFromTemplate(pit, itmname); } } // pi = pjt.ProjectItems.AddFromTemplate(pit, itmname+".cs"); //pi = pjt.ProjectItems.AddFromTemplate(pit, itmname); } catch (Exception) { pi = null; } if (pi == null) { pi = Kit.GetProjectItemByName(pjt, itmname); } if (pi == null) { return; } XmlSerializer xs = new XmlSerializer(typeof(AscxDom)); XmlReader xr = XmlReader.Create(new MemoryStream(Properties.Resources.WebUserControl)); if (xs.CanDeserialize(xr)) { ctlDom = xs.Deserialize(xr) as AscxDom; } if (IsWebApplication()) { cns = new System.CodeDom.CodeNamespace(Kit.GetRootNamespace(pjt)); cns.Comments.Add(new CodeCommentStatement("生成日期:" + DateTime.Now.ToString("yyyyMMddHHmmss"))); cns.Comments.Add(new CodeCommentStatement("KeelKit版本:" + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString())); ccu.Namespaces.Add(cns); ctd = new CodeTypeDeclaration(ctlname); ctd.IsPartial = true; ctd.IsClass = true; cns.Types.Add(ctd); } }