Я тестировал эффекты вызова виртуального члена в конструкторе и обнаружил, что при вызове этого члена результирующее исключение было заключено вTargetInvocationException
.
The exception that is thrown by methods invoked through reflection
Однако я не знаю о каких-либо вызовах через отражение. Значит ли это , что виртуальные члены всегда вызываются через отражение? Если нет, то почему в данном случае так?
Код:
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!
}
}