我将控制器 Controller 按照不同的业务,分为多个不同的项目,我需要在路由里面调度到多个不同项目的控制器

只需要在 Startup 的 ConfigureServices 方法,调用 AddControllers 添加控制器,再加上额外的程序集即可,如下面代码,下面代码的 WeatherForecastController 是定义在另一个程序集的类

        public void ConfigureServices(IServiceCollection services){services.AddControllers().AddApplicationPart(typeof(WeatherForecastController).Assembly);}

在 AddApplicationPart 方法里面加上你需要加上控制器的项目程序集即可,我推荐使用 typeof 的方法获取程序集里面某个控制器,然后通过 Type 获取程序集的方式传入程序集。传入的程序集里面定义的控制器将会被加入到路由调度

如上图的项目创建方式,创建一个 ASP.NET Core 项目,在里面放一个控制器,将其他的文件都删除。接着再创建一个 ASP.NET Core 项目,删除掉所有的控制器,接着引用刚才第一个创建的项目。此时在第二个项目的 Startup 放入上面代码即可,此时第一个的项目的控制器可以被第二个项目使用到

为了方便调试,我就再创建一个单元测试项目,详细请看 asp dotnet core 基于 TestServer 做集成测试

在这个单元测试项目里面尝试跑起来第二个项目,然后尝试访问第一个项目的控制器

    [TestClass]public class UnitTest1{[TestMethod]public void TestMethod1(){var hostBuilder = CreateHostBuilder();var host = hostBuilder.Start();var testClient = host.GetTestClient();var result = testClient.GetStringAsync("WeatherForecast").Result;}public static IHostBuilder CreateHostBuilder() =>Host.CreateDefaultBuilder().ConfigureWebHostDefaults(webBuilder =>{webBuilder.UseStartup<Startup>();webBuilder.UseTestServer(); //关键是多了这一行建立TestServer});}

本文代码放在 github 和 gitee 欢迎下载执行

我搭建了自己的博客 https://blog.lindexi.com/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新

如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入

如有不方便在博客评论的问题,可以加我 QQ 2844808902 交流


本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。

ASP.NET Core 引用其他程序集项目里面的 Controller 控制器相关推荐

  1. ASP.NET Core 2.0 : 三. 项目结构

    ASP.NET Core 2.0 : 三. 项目结构 原文:ASP.NET Core 2.0 : 三. 项目结构 本章我们一起来对比着ASP.NET Framework版本看一下ASP.NET Cor ...

  2. ASP.NET Core 技术内幕与项目实战读后感

    前几天拿到了杨中科老师的新书<ASP.NET Core 技术内幕与项目实战>,迫不及待的"两"口气读完了.用一句话来总结,这是一本写给.NET开发者的非常实用的接地气的 ...

  3. ASP.NET Core MVC 6.0项目的文件夹结构

    介绍 在本文中,我将向您解释 ASP.NET Core MVC 6.0 Web 应用程序的默认文件夹结构,并描述每个文件夹的用途. 使用以下链接阅读我以前的文章. 如何创建 ASP.NET Core ...

  4. ASP.NET Core Web多语言项目

    公司效益好了,准备和国外做生意,这个时候就需要多语言了. > 1. 这是一个ASP.NET Core Web多语言项目,主要展示项目的不同: > 2. 第一种:www.xxx.com/en ...

  5. 《ASP.NET Core技术内幕与项目实战:基于DDD与前后端分离》读后感一

    由于自己菜鸡,只能任由社会摆布,自学一段时间JAVA想去找JAVA工作,突然一份.NET Core的工作摆在面前,还好有点学历,虽然C#已经不太记得,领导仍然放我进去了.开始的一段时间,各种摸项目,也 ...

  6. 【笔记】ASP.NET Core技术内幕与项目实现:基于DDD与前后端分离

    最近在写论文,想使用ASP.NET Core Web API技术,但对它还不是很熟,鉴权组件也没用过,于是在网上查找资料,发现了杨中科老师写的这本书(微信读书上可以免费看),说起来我最初自学C#时看过 ...

  7. vs2010里面 新建网站里面的 asp.net网站 和 新建项目里面的 asp.net Web应用程序 的区别 (下)

    地址:http://www.cnblogs.com/iceicebaby/archive/2012/02/21/2361686.html 二:下面是 通过 新建项目 来创建 ASP.NET web 应 ...

  8. ASP.NET Core 2.0 MVC项目实战

     一.前言 毕业后入职现在的公司快有一个月了,公司主要的产品用的是C/S架构,再加上自己现在还在学习维护很老的delphi项目,还是有很多不情愿的.之前实习时主要是做.NET的B/S架构的项目,主要还 ...

  9. 【懒人有道】在asp.net core中实现程序集注入

    前言 在asp.net core中,我巨硬引入了DI容器,我们可以在不使用第三方插件的情况下轻松实现依赖注入.如下代码: 1 // This method gets called by the run ...

  10. vs2010里面 新建网站里面的 asp.net网站 和 新建项目里面的 asp.net Web应用程序 的区别(上)

    http://www.cnblogs.com/iceicebaby/archive/2012/02/21/2361558.html 一:先来看看  新建网站  里面的  ASP.NET 网站的建立过程 ...

最新文章

  1. Scrum卡片层次图
  2. plc梯形图语言c1,plc梯形图编程语言是什么?
  3. Angular CLI ng 指令指南
  4. centOS 6环境下安装R-3.3.2及Rstudio-server
  5. GPS基站架设完整操作流程
  6. springcloud工作笔记105---springboot2.x实现优雅的关闭服务
  7. Sybase数据库技术,数据库恢复---分享Sybase数据库知识(博客文章索引@51cto)
  8. 以色列证实上周末对伊朗核设施发动了网络攻击
  9. java就业培训教程 笔记
  10. 收费系统java源代码_java网吧计费系统源代码
  11. 携程2019秋招面经
  12. 【干货】ubuntu18.04+win7双系统+双硬盘安装总结
  13. 我为国内微积分“小糊涂”感到悲哀!
  14. msm8909 android5.1.1,MSM8909+Android5.1.1启动流程(1)---概述
  15. 中银泰各种投资理财方式对比
  16. 从零开始的VUE项目-03(数据的增删改查)
  17. outlook邮箱收件服务器密码,微软邮箱(hotmail+outlook):应用密码获取+STARTTLS加密...
  18. 利用tensorflow训练自己的图片数据集——数据准备
  19. gif制作转换器免费推荐,动图制作什么软件好用
  20. 1-十六烷基-3-三乙氧基丙基硅烷咪唑溴盐离子液体([HDTIm]Br)和1-十八烷基-3-三乙氧基丙基硅烷咪唑溴盐离子液体([ODTIm]Br)修饰磁性纳米颗粒(MNPs)

热门文章

  1. lua学习03:tolua的编译和使用:C/C++调用lua、lua调用C++、lua调用tolua、常用tolua和lua的API介绍
  2. 物联网系列②——使用ESP8266与STM32进行物联网开发板设计
  3. 体检导检系统服务器系统,喜仕达体检中心导检系统
  4. msdia80.dll是什么文件?msdia80.dll文件缺失怎么修复?
  5. 执行oracle 函数,oracle 函数function语法及简单实例
  6. arcgis栅格数据绘制等值线_ArcGIS Help 10.2 - 绘制等值线的工作原理
  7. AIM 2020 Challenge on Learned Image Signal Processing Pipeline(个人笔记,勿喷)
  8. java twaver_《TWaver Java开发手册》.pdf
  9. 走向世界中的我国摄影测量与遥感 ——访中国测绘学会理事长、国家测绘局原副局长杨凯
  10. 14届数独-真题标准数独-Day 3-20220118