簡體   English   中英

如何使用Reflection調用類型為“private async Task”的方法

[英]How to use Reflection to call a method of type “private async Task”

我有一個名為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。 知道為什么嗎?

當您嘗試訪問它時,方法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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM