2012-09-07 2 views
2

이것이 가능한지 확실하지 않지만 여기에 직면 해있는 문제가 있습니다. 기본적으로강력한 형식의 메서드로 형식 개체를 사용하십시오.

나는

var type = Assembly.Load("assembly").GetType("type"); 

의 라인을 따라 나는 동적 반사를 사용하여 T를로드하는 것입니다 달성하고 싶은 무엇

ConsoleHelper.Start<T>() where T:IService 

, 그래서 뭔가를 따를 때 강력한 형식의 방법은 그 사용했다 위에 정의 된 강력한 형식화 된 메서드를 사용합니다. 가능한가요?

+0

당신은 당신이 VAR 유형 및 제네릭 클래스 ConsolerHelper.Start (T)의 경우 무엇의 일부와 함께 할 건데 선보일 것이다 많은 코드를 공유 할 수 있을까요? – aiodintsov

+0

ConsoleHelper는 실제로 내 WCF 서비스를 호스팅하는 일반 콘솔 앱입니다. 현재 각 WCF 서비스 솔루션에 대해 기본적으로 동일한 작업을 수행하는 별도의 TestHost 프로젝트가 있습니다. 그래서이 TestHost 프로젝트를 단일 프로젝트로 통합하는 방법을 찾고 있습니다.이 프로젝트는 런타임에 리플렉션을 사용하여 WCF 서비스 어셈블리를로드합니다. – Duy

+0

하나의 프로세스에서 여러 호스트를 시작하려는 이유는 무엇입니까? – aiodintsov

답변

4

물론이 작업을 수행하려면 MethodInfo.MakeGenericMethod을 사용할 수 있습니다. IService입니다 :

var startMethod = typeof(ConsoleHelper).GetMethod("Start"); 

// Equivalent of Start<SomeType> 
var typedStartMethod = startMethod.MakeGenericMethod(typeof(SomeType)); 
관련 문제