0

我将如何构建一个从 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 中公开的插入和更新处理程序的地方班上。

4

0 回答 0