gpt4 book ai didi

c# - 调用Invoke导致参数计数不匹配

转载 作者:行者123 更新时间:2023-11-30 14:07:09 24 4
gpt4 key购买 nike

我看过其他问题,例如 this但我没有运气。我觉得我在围绕答案跳舞。

使用反射调用后MethodInfo myMethod = MakeGenericMethod(Type.GetType(MyClass))我有一个 MethodInfo在调试器中看起来像这样的对象:

myMethod --> Int32 Count[MyClass](System.Data.IDbConnection, ICriteria)

...我尝试使用 Invoke 来调用它:

ICriteria myCriteria = new Criteria("some info here");

//'connection' is an object of type System.Data.IDBConnection

int count = (int)myMethod.Invoke(connection, new object [] {myCriteria});

...但是当我这样做时,我得到一个参数计数不匹配,我正在摸不着头脑想知道为什么。

可能是因为它是一种通用方法吗?或者也许是 Countconnection 上的扩展方法?

作为引用,调用我的方法的一种非反射式、直接的方式类似于 int count = connection.Count<MyRow>(new Criteria("some info here"));

最佳答案

该方法是一个扩展方法,因此它不是该类的一部分。 Invoke的第一个参数应该是null(也可以是非null但会被忽略)

int count = (int)myMethod.Invoke(null, new object [] { connection, myCriteria });

关于c# - 调用Invoke导致参数计数不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43039058/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com