gpt4 book ai didi

c# - 如何从 Asp.Net Core 中的特定 URL 加载 DLL 文件

转载 作者:行者123 更新时间:2023-11-30 17:34:18 26 4
gpt4 key购买 nike

我想从 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/

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