2010-06-13 80 views
0

我正在編寫一個庫,可以在運行時動態生成派生類的抽象類。派生類的構造函數需要基類構造函數的一個MethodInfo,以便它可以調用它。但是,由於某些原因,Type.GetConstructor()返回null。例如:如何使用反射來獲得默認的構造函數?

abstract class Test 
{ 
    public abstract void F(); 
} 

public static void Main(string[] args) 
{ 
    ConstructorInfo constructor = typeof(Test).GetConstructor(
     BindingFlags.NonPublic | BindingFlags.Public, 
     null, System.Type.EmptyTypes, null); // returns null! 
} 

注意GetConstructor回報null即使我顯式聲明Test構造,即使測試是不是抽象的。

回答

0

想通了。我忘記了BindingFlags.Instance標誌。

奇怪的是,

ConstructorInfo constructor = typeof(Test).GetConstructor(System.Type.EmptyTypes); 

返回null。它有缺陷嗎?

相關問題