Есть ли способ вызвать методы с использованием C # Reflection со встроенными / ссылочными dll?
Например, рассмотрим следующий сценарий. У меня есть вызов сборки User.dll, класс которого указан ниже
namespace User
{
public class UserInfo
{
public static string Name = "Username";
}
}
Используя указанную выше dll в качестве ссылки, я могу скомпилировать следующий код и получить доступ к переменной UserInfo.Name.
using User;
using System.Windows.Forms;
public class Test
{
public Test()
{
MessageBox.Show("Name : " + UserInfo.Name);
}
}
Учтите, что приведенный выше код находится в другой сборке DLL с именем Test.dll. Используя Assembly.LoadFile ("Test.dll") и C # Reflection, когда я пытаюсь вызвать конструктор, получаю ошибку выполнения "Файл не найден".
Ошибка
System.Reflection.TargetInvocationException: исключение было выброшено целью вызова. ---> System.IO.FileNotFoundException: не удалось загрузить файл или сборку DynamicAssembly, Version = 0.0.0.0, Culture = нейтральный, PublicKeyToken = null или одну из их зависимостей. Система не может найти указанный файл. в Test..ctor () --- Конец трассировки стека внутреннего исключения --- в System.RuntimeMethodHandle.InvokeMethod (цель объекта, аргументы Object [], сигнатуры, логический конструктор) в System.Reflection.RuntimeConstructorInfo.Invoke (BindingFlags invokeAttr, Binder binder, параметры Object [], культура CultureInfo) в System.Reflection.ConstructorInfo.Invoke (параметры Object [])