我将如何构建一个从 C# 类定义生成 ASCX UI 控件的自动化任务?
例如,如果我有一堂课:
public class Human
{
public string Name
{
get { return this._Name.Trim(); }
set { this._Name = value; }
}
private string _Name = "";
public DateTime DateOfBirth
{
get { return this._DateOfBirth; }
set { this._DateOfBirth = value; }
}
private DateTime _DateOfBirth = new DateTime(1901, 1, 1);
public int Height
{
get { return this._Height; }
set { this._Height = value; }
}
private int _Height = -1;
}
我想上课并生成一些看起来像这样的标记:
<p>
<label for="tbName">Name</label>
<asp:textbox id="tbName" runat=server" ClientIdMode="static"/>
</p>
<p>
<label for="tbDateOfBirth">DateOfBirth</label>
<asp:textbox id="tbDateOfBirth" runat=server" ClientIdMode="static" class="date"/>
</p>
<p>
<label for="tbHeight">Height</label>
<asp:textbox id="tbHeight" runat=server" ClientIdMode="static" class="int"/>
</p>
我还想生成 C# 代码隐藏,但我确信一旦我学会了如何反映类Human
并生成这个标记,这很容易做到。
任何建议都会很棒。到目前为止,我最接近的是使用控制台应用程序作为外部工具,传递文件名,然后使用 aStreamReader
读取原始 .cs 类定义并在正确的位置生成 .ascx 和 .ascx.cs 文件. 当然,这种方法没有使用反射,我必须手动将文件添加到项目中。
我的首选选项是以某种方式关注类定义,并通过键绑定初始化自动化任务以生成新的 ASCX 用户控件并将其包含在项目中。甚至可能会问 ASCX 控件应该放在项目中的哪个位置。
谢谢你的时间 :)
更新只是说我顺便提到了代码隐藏,但实际上这是我想生成更多 C# 以将文本框与各自的属性连接起来并附加到 DataServer 中公开的插入和更新处理程序的地方班上。