asp.net-core - 在运行时在 asp.net core 中添加对类库的引用
问题描述
我创建了一个带有一个类库的 asp.net core 5 空 Web 应用程序,该类库是一个用于视图模型组合的简单控制器。课程如下:
public class MarketingProductInfo : ICompositionRequestsHandler
{
[HttpGet("/product/{id}")]
public Task Handle(HttpRequest request)
{
var vm = request.GetComposedResponseModel();
//retrieve product details from the marketing database or service
vm.ProductName = "Name";
vm.ProductDescription = "This is a sample product";
return Task.CompletedTask;
}
}
实际上,这个库将是一个为特定路由返回数据的微服务。现在,当我在编译时添加对类库的引用时,一切正常,通过使用邮递员,我可以从 Web 应用程序获得响应。问题是我希望这种引用在运行时发生。因此,例如,我将类库的 dll 文件复制到一个文件夹中,然后 Web 应用程序在运行时加载它们以实现模块化。我在互联网上搜索了很多关于插件等的信息,但我发现的一切都是加载一个 dll 并执行一个特定的方法或实例化一个类......我的问题是我如何在运行时加载这个 dll 而无需做任何其他事情? 提前致谢!
解决方案
为什么要在运行时添加引用,出于任何特定原因?如果您不想直接引用该库以实现模块化,那么您可以利用 Nuget。
- 将类库作为 NuGet 包推送。
- 将该 NuGet 包添加到您的 Web 应用项目。
这样你就不会直接依赖你的类库,你可以分别管理它们!