我正在实现一个自定义控件,它接收 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 而自定义控件不知道。此外,自定义控件本身不打算成为一个泛型类。希望这有助于集中我的问题。