动态加载和创建 .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中文网其他相关文章!