제너릭 클래스를 만들었지 만, 디자인에서 런타임에 유형을 알고 있으므로 런타임에 유형을 설정하는 방법을 알고 싶습니다.일반 클래스, 런타임에서 유형을 설정하는 방법은 무엇입니까?
예를 들어, 내가 가진 :
public class MyGenericClass<T>
{
....
}
은 그 때 나는 그것을 사용하려고합니다. 이 클래스를 사용하는 다른 클래스의 메서드가 있습니다. 이 클래스의 생성자에서 필자는 원하는 형식을 매개 변수로받습니다. 따라서 필요한 형식을 저장하는 형식 속성이 있습니다. 그래서 이것을 시도하고 있습니다 :
MyGenericClass<_typeNeeded> myClass = new MyGenericClass<typeNeeded>();
그러나 이것은 작동하지 않습니다.
내가 만든 클래스에서 런타임에 유형을 어떻게 설정합니까?
저는 C# 4.0을 사용하고 있습니다.
감사합니다. Daimroc.
편집 : 내가하고 싶은 것은 다음과 같습니다. 데이터베이스에 쿼리를 수행해야하는 클래스가 있습니다. 이 쿼리는 항상 동일한 정보 인 클래스를 반환하지만이 클래스를 포함하는 정보는 다른 테이블에서 가져옵니다. 이는 사용할 쿼리를 결정해야하기 때문입니다. 어떤 쿼리를 사용할지 결정하기 위해받은 유형을 사용합니다.
내가 디자인 유형을 모르지만 런타임에입니다.
클래스에 의해 구현 될 인터페이스를 사용할 수 있으며 올바른 클래스로 인스턴스화 된 인터페이스를 사용할 수 있습니다. 그러나이 인스턴스를 사용하면 인스턴스화 순간에 스위치 나 if가 생기게됩니다. 나는 피하려고 노력한다. 나는 좀 더 일반적인 것을 원한다. 또한이 솔루션을 사용하면 instantion 순간에 if를 가질 수 있으므로 generic 클래스를 만들 수 있으므로 클래스가 하나 뿐이므로 유지 관리가 쉽습니다.
광범위한 반영 없이는 불가능합니다. – Femaref
[이 링크] (http://geekswithblogs.net/marcel/archive/2007/03/24/109722.aspx)를 보았습니까? –
왜 동적 키워드를 사용하지 않습니까? –