コンストラクターで仮想メンバーを呼び出す効果をテストしていたところ、そのメンバーを呼び出すと、結果の例外がTargetInvocationException
.
ドキュメントによると、これは次のとおりです。
リフレクションによって呼び出されたメソッドによってスローされる例外
ただし、リフレクションによる呼び出しは認識していません。これは、仮想メンバーが常にリフレクションを介して呼び出されることを意味しますか? そうでない場合、この場合はなぜそうなのですか?
コード:
class ClassA
{
public ClassA()
{
SplitTheWords();
}
public virtual void SplitTheWords()
{
//I've been overidden
}
}
class ClassB : ClassA
{
private readonly String _output;
public ClassB()
{
_output = "Constructor has occured";
}
public override void SplitTheWords()
{
String[] something = _output.Split(new[]{' '}); //TargetInvocationException!
}
}