我有一个名为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(处理器,新对象[] {posts});
但我正在获得NRE。知道为什么吗?
答案 0 :(得分:3)
当您尝试访问它时,方法info为null,因为它是静态成员而不是实例成员。
以静态成员而非实例成员的身份访问该方法。另外,因为它是静态的,所以不需要实例来调用方法。
var type = typeof(PageProcessor);
var method = type.GetMethod("InsertPosts", BindingFlags.NonPublic | BindingFlags.Static);
var task = method.Invoke(null, new object[] { posts }) as Task;