gpt4 book ai didi

C# 在没有构建时引用的情况下在运行时调用静态方法?

转载 作者:太空狗 更新时间:2023-10-29 20:53:45 25 4
gpt4 key购买 nike

我正在用 C# .net (2.0) 编写一个系统。它具有可插入模块类型的体系结构。可以在不重建基础模块的情况下将程序集添加到系统中。为了连接到新模块,我希望尝试按名称调用其他模块中的静态方法。我不希望在构建时以任何方式引用被调用的模块。

当我从 .dll 文件的路径开始编写非托管代码时,我会使用 LoadLibrary() 将 .dll 放入内存,然后使用 get GetProcAddress() 获取指向我希望调用的函数的指针。我如何在 C#/.NET 中获得相同的结果。

最佳答案

在使用 Assembly.LoadFrom(...) 加载程序集后,您可以通过名称获取类型并获取任何静态方法:

Type t = Type.GetType(className);

// get the method
MethodInfo method = t.GetMethod("MyStaticMethod",BindingFlags.Public|BindingFlags.Static);

Then you call the method:

method.Invoke(null,null); // assuming it doesn't take parameters

关于C# 在没有构建时引用的情况下在运行时调用静态方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1406795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com