我的目标是显示有关上传的dll中某些类的方法的信息。加载程序集,找到所需的类及其方法已成功完成。现在我试图表明方法是否被声明为“异步”。
我找到了一个告诉我如何操作的帖子:How can I tell if a C# method is async/await via reflection?
无论如何,在测试时,我称之为
(AsyncStateMachineAttribute)methodInfo.GetCustomAttribute(typeof(AsyncStateMachineAttribute))
我收到了System.IO.FileNotFoundException - “无法加载文件或程序集'{assembly identifier}'或其依赖项之一。系统无法找到指定的文件。”。
我在一个未答复的帖子中发现了这个异常,但它对我没有帮助:How to prevent MemberInfo.IsDefined from throwing FileNotFoundException on irrelevant attributes?
我知道我正在查看的方法有一个我的代码不知道的属性。我不想加载该引用,因为它只是一个测试用例,并且可以在相同的情况下找到许多其他不同的属性。
所以,我需要回答两个问题之一:
有没有办法获取属性“AsyncStateMachineAttribute”,如果它存在,忽略其他属性的错误?
还有另一种检查方法(来自MethodInfo)是否异步的方法吗?
提前致谢! :)