2012-09-07 32 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)); 
相關問題