65.9K
CodeProject 正在变化。 阅读更多。
Home

ASCX 控件解析器

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.06/5 (6投票s)

2002年4月24日

2分钟阅读

viewsIcon

102980

downloadIcon

1008

一个可以将 .ascx 用户控件转换为可分发控件的程序

引言

你是否曾经希望将 .ASCX 文件转换为可分发的控件?这个程序会生成 .ASCX 文件的源代码,以便你可以编译它,而无需分发 .ASCX 文件。它几乎可以模拟 Page.LoadControl ("asdf.ascx") 的工作方式。

用法

  • 运行 exe 文件,将 ascx 代码粘贴到文本框中。
  • 选择输出类名(它将在 ASP 命名空间中创建 - 但你可以手动更改此设置)
  • “具有基类?”复选框设置解析器以声明控件或不声明控件。如果选中此项,则基类应已声明每个控件。
  • 点击“执行”,C# 代码将输出到同一个文本框中。
  • 将代码放入 Web 应用程序中的新类中,希望它应该可以编译。
  • 要将代码添加到页面,你可以这样做(假设该类名为 CDefault 并且命名空间保留为 ASP)
    //=======================================================
    private void Page_Load(object sender, System.EventArgs e)
    {
     // Put user code to initialize the page here
     Control c = new ASP.CDefault();
     this.Controls.Add ( C );
    }
    //=======================================================
    

已知问题: 

  • 编译器指令被忽略,因此注册除 asp 控件(asp: 命名空间)以外的控件必须手动完成。你可能需要对输出进行一些编辑以适应你的需求(例如,代码隐藏类等)。

  • 列表属性未正确加载。例如,标签控件上的 Font-Names 属性实际上是一个字符串列表(string[])。解析器无法判断属性是否为列表,因为它并不总是可以对类型进行反射(有什么方法可以解决这个问题吗?)。

待办事项

  • 添加 VB.NET 输出,目前输出仅为 C#。
  • 将其制作成 Visual Studio Add-In。
  • 识别编译器指令。

注册

如果你喜欢它,请发送电子邮件至 bvk@villagechief.com

如果你进行任何更改或添加,请通过上述电子邮件地址发送给我。

版权和许可

这是一个免费软件,你可以随意使用。作者对因该程序造成的任何损坏或数据丢失不承担任何责任。

© . All rights reserved.