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# を生成したいところです。クラス。