This issue is for .NET Core 3.1 but I believe it would also occur in .NET Framework 4.8 (and probably lower versions).
This issue is for AsyncAwaitBestPractices V4.2.0.
I discovered this in unit tests in my project. I am using FluentAssertions and checking for property changed events to be fired. See the example below:
var vm = new ViewModel();
using var subject = vm.Monitor();
vm.SomeMethod();
subject.Should().RaisePropertyChangeFor(x => x.Value);
Here is the stack trace from when the exception occurs.
Message:
System.ArgumentException : MethodInfo must be a runtime MethodInfo object. (Parameter 'this')
Stack Trace:
RTDynamicMethod.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
EventManagerService.HandleEvent(String& eventName, Object& sender, Object& eventArgs, Dictionary`2& eventHandlers)
WeakEventManager.RaiseEvent(Object& sender, Object& eventArgs, String& eventName)
WeakEventManager.RaiseEvent(Object sender, Object eventArgs, String eventName)
VMBase.OnPropertyChanged(String& propertyName) line 322