问题描述
我使用一个类库创建了一个 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 包添加到您的网络应用项目。
这样你就不会直接依赖你的类库,你可以分别管理它们!