I ran into a novel manifestation of this issue, which is related to several existing answers but not quite the same as any of them.
One of our top-level applications had a reference to an internal package, and subsequently referenced an assembly from that package. We'll call this reference version 1.0.
At runtime, it loaded a plugin which also had a reference to the same internal package (and assembly from the package) but a more recent version, we'll call this reference version 2.0.
Version 2.0 was not available anywhere in the runtime path. We have an assembly load redirection which satisfied the dependency by loading version 1.0 of the reference from a different location from the automatic load that happened from the direct reference.
The missing member exception issued for an extension method against an interface implemented by a type in the application. The problem was that when the runtime tried to find the extension method, it found the namespace from the second load of the assembly. The type difference was by the particular instance of the assembly even though both were the same version (ultimately two different copies on disk of the exact same file).
The fix is the same, reconcile the versions involved. In this case, we might also tweak our existing resolution code to not re-load an assembly that is already loaded.
somepage? As 'sound' noted, this code isn't valid. Please give us a complete code snippet that demonstrates the problem.