首页 >后端开发 >C++ >如何加载和实例化仅知道其名称和类名的 .NET 程序集?

如何加载和实例化仅知道其名称和类名的 .NET 程序集?

Susan Sarandon
Susan Sarandon原创
2025-01-19 09:11:09292浏览

How Can I Load and Instantiate a .NET Assembly Knowing Only Its Name and Class Name?

动态加载和创建 .NET 程序集的实例

在许多开发场景中,您可能需要在运行时加载并创建 .NET 程序集的实例,只知道其名称和要使用的类。 这与传统引用不同,在传统引用中,您显式添加对项目的引用。

使用 Assembly.LoadFrom 和 Activator.CreateInstance

.NET 框架提供了处理此问题的工具。 Assembly.LoadFrom 将程序集加载到内存中,使其类型可访问。然后,Activator.CreateInstance 在该程序集中创建指定类的实例。

代码示例

以下是加载程序集并创建类实例的方法:

<code class="language-csharp">Assembly assembly = Assembly.LoadFrom("library.dll");

Type type = assembly.GetType("Company.Project.Classname");

object instanceOfClassname = Activator.CreateInstance(type);</code>

处理未知路径

如果 DLL 的确切路径未知,Assembly.LoadFrom 将不起作用。 这种情况,你可以尝试Activator.CreateInstance(assemblyName, typeName)。 此方法尝试根据程序集和类型名称来查找类型。如果不成功,您可以在特定目录中搜​​索程序集,然后使用 Assembly.LoadFrom 进行实例化。

这种方法为您的应用程序增加了运行时灵活性,允许它们与程序集交互,而无需事先显式引用。

以上是如何加载和实例化仅知道其名称和类名的 .NET 程序集?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn