Previously the interceptors were only matching based on the method name, causing an AmbiguousMatchException when overloads were present.
Now the interceptors will match by method name, and if there are overloads present then the interceptor will use the parameters to identify the correct method. If it can't identify the correct overload it won't fire the timing code.
Additionally I've refactored the matching code into a single InterceptorBase class, and added tests to cover the overloaded case, and the generic interface case.
Previously the interceptors were only matching based on the method name, causing an
AmbiguousMatchException
when overloads were present.Now the interceptors will match by method name, and if there are overloads present then the interceptor will use the parameters to identify the correct method. If it can't identify the correct overload it won't fire the timing code.
Additionally I've refactored the matching code into a single InterceptorBase class, and added tests to cover the overloaded case, and the generic interface case.