Средство обхода зависимостей предназначено для DLL-библиотек win32 (то есть нативный код ), а не сборок .NET (то есть управляемый код ). Он не найдет методы в произвольном классе (даже если они статические). Если вам нужно вызвать управляемый код из нативного кода, есть способы сделать это, , но это не очень .
Если вы хотите использовать свою dll из управляемого кода, это намного проще. Проверьте System.Assembly и Активатор .
Пример этого:
var assembly = Assembly.LoadFile(@"\path\to\your.dll");
var mydllclass_type = assembly.GetType("MyDllClass");
var instance = Activator.CreateInstance(mydllclass_type);
Экземпляр будет объектом. Для вызова методов вам нужно использовать отражение, потому что интерфейс не известен во время компиляции.
Если вы создаете систему плагинов, лучше всего иметь общий интерфейс или абстрактную базу для всех плагинов и ссылаться на них в вашей программе. Те третьи лица, которые реализуют плагин, также будут ссылаться на этот договор. В этом случае последняя строка немного меняется:
var instance = (IMyDllClass)Activator.CreateInstance(mydllclass_type);
Теперь вы можете использовать методы, как в правильно построенном объекте.