1

実行時に抽象クラスの派生クラスを動的に生成するライブラリを作成しています。派生クラスのコンストラクターは、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!
}

でコンストラクターを明示的に宣言した場合でも、 Test が抽象的でない場合でも、がGetConstructor返されることに注意してください。nullTest

4

1 に答える 1

1

理解した。BindingFlags.Instanceフラグを忘れました。

奇妙なことは、

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

null を返します。不良品ですか?

于 2010-06-13T03:17:45.427 に答える