MethodInfo.Invoke抛出TargetInvocationException c#

时间:2016-02-15 09:34:04

标签: c# invoke methodinfo targetinvocationexception

所以这是我的TargetInvocationException问题。

MethodInfo method.Invoke(null, arguments);

的行上发生此错误

仅供参考我是在制作一个有人在我之前制作的代码,在2014年它本来应该有效,但事实并非如此。在整个星期结束后搜索,我没有发现问题。 不要问我有关我的代码的更多信息,也许问题来自其他地方。

在主程序中,它看起来像这样(没有所有代码,有些部分介于这些行之间,但你不需要它们):

static void Main (string[] args)
{
    [... Code before]
    object[] arguments = { popup };
    MethodInfo method;
    CodeCompiler cc = new CodeCompiler();
    method = cc.CompileCode(fichier, "test", "RequestWeb", "requestW", true, arguments);

    List<Account> li = (List<Account>)method.Invoke(null, arguments); // TargetInvocationException Here is the error
}

这是班级帐户:

public class Account
{
    virtual public string libelle { get; set; }
    virtual public List<AccountStat> listR { get; set; }

    public Account()
    {
        this.listR = new List<AccountStat>(); // This go to another class where List<AccountStat> is defined
    }
}

我试图通过InnerException系统了解谁:

&#34;指数不受限制。它不应该是负数,并且必须小于集合\ r \ nName参数的大小。开始索引&#34;

但我仍然不明白这是什么意思......问题是List<Account>吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

逐点搜索所有内容后,我发现错误发生在requestW"The index was off limits. It should not be negative and must be less than the size of the collection \ r \ nName parameter . StartIndex"错误中。 (在逐点检查所有内容之后,我的班级里面似乎又出现了这个错误,我试图阅读互联网网站。)

在这堂课中,我有一部分从<tbody的一边走到另一边,经过分解后我发现StartIndex值不是正值而是负值,这会引发异常。

所以问题不在List<Account> li = (List<Account>)method.Invoke(null, arguments);本身,而在method类中我的requestW被调用并给出了例外。 谢谢大家帮助我解决我的问题:)