2012-09-07 43 views
2

我甚至不确定这是否可能,但这是我面临的问题。使用强类型方法的类型对象

基本上我有一个强类型的方法如下

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

我想达成什么是使用反射动态加载T,这样的东西沿着

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

行然后使用用上面定义的强类型方法键入。这是可能吗?

+0

你能共享一个大的代码片段,将展示你有什么打算使用var类型和什么泛型类ConsolerHelper.Start(),其中T部分做:IService是什么? – aiodintsov

+0

ConsoleHelper实际上是托管我的WCF服务的通用控制台应用程序。目前,对于每个WCF服务解决方案,我们都有一个单独的TestHost项目,它本质上是做同样的事情。所以我正在寻找一种方法将这些TestHost项目整合到一个单独的项目中,该项目将在运行时使用反射来加载WCF服务程序集。 – Duy

+0

为什么你不想在一个进程内启动多个主机? – aiodintsov

回答

4

当然,您可以使用MethodInfo.MakeGenericMethod来做到这一点。

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

// Equivalent of Start<SomeType> 
var typedStartMethod = startMethod.MakeGenericMethod(typeof(SomeType)); 
相关问题