Dynamically P/Invoking a DLL
This article describes a typesafe managed wrapper for GetProcAddress that should help you out.
https://docs.microsoft.com/en-us/archive/blogs/jmstall/type-safe-managed-wrappers-for-kernel32getprocaddress
You can do this by P/Invoking into LoadLibrary and GetProcAddress, and then using Marshal.GetDelegateForFunctionPointer.
For details, see this article.
Also see this blog post from Jonathan Swift title Dynamically calling an unmanaged dll from .net