Tôi đang viết unit test cho một ứng dụng WinRT, và tôi có thể gọi phi async phương pháp tư nhân sử dụng này:Làm thế nào để chờ đợi một phương thức riêng tư async được gọi bằng cách sử dụng sự phản chiếu trong WinRT?
TheObjectClass theObject = new TheObjectClass();
Type objType = typeof(TheObjectClass);
objType.GetTypeInfo()
.GetDeclaredMethod("ThePrivateMethod")
.Invoke(theObject, null);
Tuy nhiên, nếu phương pháp tư nhân trong câu hỏi là async
, mã sẽ tiếp tục thực hiện mà không đợi nó kết thúc.
Làm cách nào để thêm chức năng await
vào tính năng này?
Vì đây là một ứng dụng WinRT, tôi có cảm giác rằng sự phản ánh/yêu cầu của các thành viên riêng không được phép. Tôi không thể tìm thấy tài liệu chính thức về điều này trên google ngay bây giờ, gần nhất là: http://blogs.microsoft.co.il/blogs/sasha/archive/2011/09/17/metro-net-framework-profile-windows EDIT-EDITored.aspx: Đây là những bài kiểm tra đơn vị mặc dù, vì vậy có lẽ đó là một vấn đề không. :) –
@Chris Sinclair Trên thực tế, mã tôi có ở trên hoạt động hoàn toàn tốt cho các phương pháp riêng tư. Vấn đề của tôi đặc biệt với vấn đề không đồng bộ. Vấn đề này cũng sẽ áp dụng cho các phương thức công khai được gọi thông qua sự phản chiếu. – jokeefe