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このマークアップを生成する方法を学べば、簡単に実行できるはずです。

どんな提案も素晴らしいでしょう。私がこれまでに得た最も近い方法は、コンソール アプリケーションを外部ツールとして使用し、ファイル名を渡し、次に a を使用しStreamReaderて生の .cs クラス定義を読み取り、正しい場所に .ascx & .ascx.cs ファイルを生成することです。 . 原因として、このアプローチはリフレクションを使用していないため、手動でファイルをプロジェクトに追加する必要があります。

私の好みのオプションは、何らかの形でクラス定義に焦点を当て、キー バインディングを介してオートメーション タスクを初期化し、新しい ASCX ユーザー コントロールを生成してプロジェクトに含めることです。プロジェクト内のどこに ASCX コントロールを配置すべきかを尋ねることさえあるかもしれません。

御時間ありがとうございます :)

更新コード ビハインドについて言及しましたが、実際には、テキスト ボックスをそれぞれのプロパティに接続し、DataServer で公開されている Insert & Update ハンドラにアタッチするために、もっと多くの C# を生成したいところです。クラス。

4

0 に答える 0