我正在测试在构造函数中调用虚拟成员的效果,并发现在调用该成员时产生的异常被包装在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!
}
}