在运行时在 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。

  1. 将类库作为 NuGet 包推送。
  2. 将该 NuGet 包添加到您的网络应用项目。

这样你就不会直接依赖你的类库,你可以分别管理它们!