使用反射从c# Dll调用c#方法
本文关键字:Dll 方法 调用 反射 | 更新日期: 2023-09-27 18:18:41
大家好!我有以下问题。我正在c#中处理我的.dll库,我需要从dll库中调用另一个c#项目的方法。例如,我创建了一个WPF项目,并添加了我的。dll库的引用。
这是我的WPF类(项目):using dllLibrary;
namespace Tester
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
public void MyMethod()
{
MessageBox.Show("Test");
}
}
}
这是我的。dll项目:
Type type = Type.GetType("Tester.MainWindow");
object instance = Activator.CreateInstance(type, null);
MethodInfo method = type.GetMethod("MyMethod");
return method.Invoke(instance, null);
顺便说一下,当我在程序集中调用一个方法时,它会起作用(dll项目的),但是当我想调用dll项目之外的方法(Tester. dll)。
类型。不带完整限定名的GetType只适用于mscorlib.dll中的类型。对于所有其他类型,必须传递类型的完整限定名。所以当你把GetType调用改成这样它就能工作了:
Type.GetType("Tester.MainWindow, TestAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b17a5c561934e089);
可以先使用assembly加载程序集。