Entity Framework 및 LINQ를 사용하고 있습니다. GridViews의 "도우미"클래스에서 재사용 가능한 메서드를 만들고 싶습니다.스위치를 사용하지 않고 GetType()에서 파생 된 형식 사용
이 메서드는 전달 된 엔터티 형식을 기반으로 엔터티 목록으로 DataSource를 반환합니다. 나는 내가 제안을 열어 오전 방법의 문자열로 원하는 개체 유형을 통과해야하는 경우
GridView1.DataSource = helperClass.GetDataSource(new Entity1());
참고 * : 호출이 같이 있도록
그래서 GridView1은의 [Entity1]이 표시됩니다. 난 그냥이 방법은
는 재사용 방법은 간단합니다 반환 및 유사 수있는 ~ 40 개체 타입 사이에 스위치 케이스를 사용하고 싶지 않습니다
public static object GetDataSource(object type)
{
using (DatabaseContext dc = new DatabaseContext())
{
if (dc.[how do I get the entity type here].Count() > 0)
{
var modelList = dc.[how do I get the entity type here also].ToList();
}
}
}
이 바보 같은 소리, 하지만 분명히 할 수 없었습니다.
var modelList = dc.(type.GetType()).ToList();
하지만 기본적으로 달성하고자하는 것입니다. 당신이 컴파일 타임에 유형을 결합 할 경우
무슨 소용이 당신입니까? 객체 목록을 얻지 만 컴파일 타임에 객체 유형을 알지 못합니까? 나는 제네릭으로 원하는 것을 할 수있는 더 나은 방법이 있다고 생각합니다. –
말하자면, 이것은 https://stackoverflow.com/questions/1919632의 복제본에 가깝습니다. 차이점은 먼저 유형에서 이름을 가져와야한다는 것입니다. –
@DStanley 잘 될지도 모릅니다. 이것은 재사용 가능한 도우미 메서드를 만들 때 생각한 첫 번째 방법이었습니다. 비슷한 메소드 (sort, bind, databound와 같은)를 가진 다중 GridView가있는 웹 애플리케이션이 있으므로 동일한 코드를 입력하는 대신 원격 메소드에서 재사용 가능한 메소드를 만들고 싶었습니다. GridView) ~ 40 times – toadfromgrove