タイプ T (文字列として) のプロパティのリストと IList を受け取り、それを HTML テーブルにレンダリングするカスタム コントロールを実装しています。マークアップとCreateChildControls
パーツダウンがあります。
私がやりたいことは、リフレクションを介してプロパティを調べforeach
、リストで実行されているループ内のプロパティの値を取得することです。
コンパイル時に T が何であるかわからないので、任意の T の List に対応できるようにしたいと考えています。
これを行う最良の方法は何ですか?
編集:
public class CustomControl : System.Web.UI.WebControls.WebControl, INamingContainer
{
private List<string> _properties;
private **?????????** _dataSource;
public List<string> Properties
{ set { _properties = value; } }
public **?????????** DataSource
{ set { _dataSource = value; } }
}
次に、Properties の値を次のように設定したとします。
_properties = new List<string>()
{
"FirstName",
"LastName"
};
タイプ person のオブジェクトのリストを渡します。
public class Person
{
public string FirstName
{ get; set; }
public string LastName
{ get; set; }
}
person calss は単なるプレースホルダーです。リスト内の任意の T に対してこれを行いたいと思います。呼び出し元のクラスは型 T を認識していますが、カスタム コントロールは認識していません。また、カスタム コントロール自体がジェネリック クラスになる予定はありません。これが私の質問に焦点を当てるのに役立つことを願っています。