在运行时以编程方式添加 DLL
我使用 C# 在运行时创建了一个 DLL,现在我想在运行时将其添加为对我的项目的引用。
我尝试使用 LoadFrom
方法,但它不起作用。
我该怎么做?
Using C#, I create a DLL at runtime and now I want to add it as a reference to my project at runtime.
I tried using the LoadFrom
method, but it doesn't work.
How can I do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
首先您应该加载 dll
然后您可能需要将程序集添加到应用程序域
之后您可以从此程序集中加载任何类型
然后使用反射您可以在此类型上执行方法
请注意您可能需要在配置中添加以下内容文件。
First you should load the dll
Then you may need to add the assembly to the app domain
After that you can load any type from this assembly
Then using reflection you can execute methods on this type
Note that you may need to add the below in the configuration file.
LoadFile 与 LoadFrom
参考 Suzanne Cook 的 .NET CLR 注释
LoadFile vs. LoadFrom
ref Suzanne Cook's .NET CLR Notes
使用 Assembly.LoadFile 方法,然后使用反射在其中运行代码。
Use Assembly.LoadFile method and then run code inside it using reflection.
实际上
Assembly.Load
通常是你想要的,不是LoadFrom
也不是LoadFile
:http://blogs. msdn.com/b/suzcook/archive/2003/05/29/57143.aspx
Actually
Assembly.Load
is usually what you'd want, notLoadFrom
and notLoadFile
:http://blogs.msdn.com/b/suzcook/archive/2003/05/29/57143.aspx
当项目已经运行时,您无法将 dll 添加到项目中。但是,您可以使用 Assembly.LoadFrom( filename) 加载 dll。通常这样的场景用于 SOA 或基于插件的项目。您可以使用接口来指定类型结构并加载dll并使用它。
You cannot add dll to a project when project is already running. However, you can load the dll using Assembly.LoadFrom( filename). Normally such scenerio is used for SOA or plugin based projects. You can use interface to specify the type structure and load the dll and use it.
您可以使用 Assembly.LoadFrom 方法来在运行时动态加载程序集。
You could use the Assembly.LoadFrom method to dynamically load an assembly at runtime.
这在 .NET 中非常简单: http://msdn.microsoft.com/en -us/library/1009fa28.aspx
This is very simple in .NET: http://msdn.microsoft.com/en-us/library/1009fa28.aspx