作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想从 http://localhost:8080/bin/ 下载一个 DLL 文件并在我的 Asp.Net Core 应用程序中实例化类和函数。
我已经制作了一个小型控制台应用程序(在 .NET Framwork 中)来执行此操作。这里的代码:
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
using (var wc = new WebClient())
{
var myDll = Assembly.Load(wc.DownloadData("http://localhost:8080/test-dll/bin/myDll.dll"));
Type t = myDll .GetType("ConsoleApplication1.Test");
// Instantiate my class
object myObject = new object();
myObject = Activator.CreateInstance(t);
}
}
}
}
不幸的是,.Net Core 不支持 WebClient。
那么,我怎样才能加载位于特定 URL 中的 dll 文件并实例化它呢? (在 .Net 核心中)
预先感谢您的回答!
最佳答案
您应该能够使用以下代码在 ASP.Net Core 中下载文件。
using (HttpClient client = new HttpClient())
{
string url = "http://localhost:55272/myDll.dll";
using (var response = await client.GetAsync(url))
{
response.EnsureSuccessStatusCode();
using (var inputStream = await response.Content.ReadAsStreamAsync())
{
var mydll = AssemblyLoadContext.Default.LoadFromStream(inputStream);
}
}
}
但请记住,某些文件类型(例如 .config、.dll 和 .exe)在 IIS 中受到保护,您将无法使用 IIS 的默认设置/配置下载此类文件。您需要明确配置该部分。可能是这个link可以在这方面有所帮助。
关于c# - 如何从 Asp.Net Core 中的特定 URL 加载 DLL 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42715570/
我是一名优秀的程序员,十分优秀!