I am writing an application in C# that has a need to call DLLs whose file name, path, entry point and parameter signature will be passed into my application at run time. I have found a few vague references to using Reflection.Emit, but after reading the articles, it seems that Reflection.Emit can not handle the criteria outlined above. All the documentation I have read about P/Invoke requires early binding to a known file, entry point and parameter signature. I have read one article that talks about writing an assembly language DLL as a bridge between .NET and unmanaged DLLs. While an extraneous DLL is an option, I would prefer to find a more elegant solution to the problem. The one criterion above that is flexible is the parameter signature, but again I would prefer to be able to allow flexibility in that as well.
So to sum up, the problem is allowing .NET to call an unamanged DLL whose details (file name, entry point and parameter signature) are not known at compile time.