ASCX 控件解析器






4.06/5 (6投票s)
2002年4月24日
2分钟阅读

102980

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
如果你进行任何更改或添加,请通过上述电子邮件地址发送给我。
版权和许可
这是一个免费软件,你可以随意使用。作者对因该程序造成的任何损坏或数据丢失不承担任何责任。