형식 T (문자열) 및 IList의 속성 목록을 받고 HTML 표로 렌더링하는 사용자 지정 컨트롤을 구현하고 있습니다. 마크 업과 CreateChildControls
부분이 있습니다.IList에서 알 수없는 형식의 액세스 속성 <T>
내가하고 싶은 것은 리플렉션을 통해 속성을 살펴보고 List에서 실행되는 foreach
루프 내의 속성 값을 가져 오는 것입니다.
나는 T는 컴파일시에 무엇을 모르는, 내가 이렇게하는 가장 좋은 방법이 될 것입니다 무엇 어떤 T.
에 대한 목록을 수용 할 수 있도록하려면?
편집 :
_properties = new List<string>()
{
"FirstName",
"LastName"
};
그리고 형의 사람의 개체의 목록을 전달 :
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; } }
}
가 지금은 이런 일에 속성의 값을 설정 말할 수
public class Person
{
public string FirstName
{ get; set; }
public string LastName
{ get; set; }
}
사람 캘als는 단지 장소 소유자입니다. 목록에있는 모든 T에 대해이 작업을 수행하려고합니다. 호출 클래스는 T 유형을 알고 있으며 사용자 정의 컨트롤은 그렇지 않습니다. 또한 사용자 지정 컨트롤 자체는 일반 클래스로 계획되지 않습니다. 희망 사항은 내 질문에 집중하는 데 도움이됩니다.
글쎄, 무엇을 시도 했습니까? (힌트 :'typeof (T) .GetProperty (...)'는 귀하의 친구입니다 ...) –
@JonSkeet - List의 속성은 어떤 유형이어야합니까? IList? 그것을 캐스팅해야합니까? 그렇다면 무엇에? –
나는 잘 모른다 - 우리는 문맥에 대해 충분히 모른다. (일반적인 메서드, 예를 들어, 일반적인 형식 일 수 있습니까? 호출자가 형식을 알고 있습니까? 아니면 동적이어야합니까?) –