如何使用反射调用“私有异步任务”类型的方法

用户7127000

我有一个PageProcessor用方法调用的类

private static async Task InsertPosts(IEnumerable<LrcPost> posts)
{
   // ...
}

我试图在我的单元测试之一中调用它,例如

PageProcessor processor = new PageProcessor();
MethodInfo dynMethod = processor.GetType()
    .GetMethod
    (
        "InsertPosts",
        BindingFlags.NonPublic | BindingFlags.Instance
    );

dynMethod.Invoke(processor, new object[] { posts });

但我正在获得 NRE。知道为什么吗?

恩科西

当您尝试访问它时,方法信息为空,因为它是静态成员而不是实例成员。

作为静态成员而不是实例成员访问该方法。也因为它是静态的,所以不需要实例来调用方法。

var type = typeof(PageProcessor);
var method = type.GetMethod("InsertPosts", BindingFlags.NonPublic | BindingFlags.Static);
var task = method.Invoke(null, new object[] { posts }) as Task;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用反射(Java)调用私有静态方法?

如何使用反射调用私有方法?

如何测试私有异步函数

如何使用反射调用通用异步方法

如何使用反射访问私有方法?

通过反射调用具有Class <T>类型参数的私有方法

如何使Parallel等待所有异步任务完成?

如何将带有异步方法调用的if条件集转换为Dictionary?

如何在 Xcode 13 中调用具有异步重载的原始同步方法

如何使用反射调用具有泛型返回类型的泛型方法

如何使用带有异步调用的 useState 钩子来更改数组?

如何知道所有异步HTTP调用已完成

如何使用反射获取调用方法的名称和类型?

具有异步任务的BlockingCollection

取消所有异步任务

Java反射:如何以私有接口作为参数调用方法?

为什么我可以使用反射来调用外部类的私有方法?

是否可以通过反射来调用私有属性或方法

如何使用反射调用带有参数的方法?

如何使用反射来动态调用类型?

具有异步子任务的异步游标迭代

如何使用反射在静态类中找到私有静态方法?

如何在Node.js中等待所有异步任务完成?

如何停止执行,直到所有异步任务在android中执行完毕?

在没有异步的情况下使用等待来完成任务

如何通过 C# 中的任务调用反射方法?

循环中的所有异步调用完成后,如何调用函数?

如何使用反射检测通用值任务类型 ValueTask<T>

带有异步Dapper方法的CancellationToken?