C# .NET Core API Controller以及辅助专案

2023-11-11 07:20

本文主要是介绍C# .NET Core API Controller以及辅助专案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

准备工作

  1. Windows 10
  2. Visual Studio 2019(2017就有可以集中发布到publish目录的功能了吧)
  3. C#
  4. 将方法封装(据说可以提高效率,就像是我们用的dll那种感觉
  5. 新增专案作为我们API的辅助专案(作用类似dll,此处,你也可以在你自己的API专案里建文件夹,但这样据说没有效果,我也不知道是不是真的,只能麻烦点,再新增专案啰)

在你创建一个空白的API专案后,这个专案会自动继承ControllerBase类,补第一个专案的图,因为有时候自己见一个.cs的类,不会自动继承,所以就需要手动添加,不过现在升级了,可以直接建control。
专案取名

  • 在系统里直接建Controller类
    直接建Controller类

新增专案

​ 不想太麻烦的,就自己新建文件夹,自己调用就好,就不用建这么多专案。

​ 在新增专案前,先迁移一下之前的项目。之前是D:\WEB_CODE\RMS\,我在此再建了一层目录,此时,xml文件的路径也需要重新勾选。
迁移专案
​ 给大家看下完整建好后的文件夹

新增IServices专案

新增Services专案

新增Model专案

在这里插入图片描述
在这里插入图片描述

版本冲突

在这里插入图片描述
在这里插入图片描述

专案引用

具体的引用要看你需要用到那个专案,这是你自己设定的联系。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

using Autofac;
using Autofac.Extensions.DependencyInjection;namespace RMS
{public class Startup{// 为ConfigureServices方法添加新的注入,且将返回类型void改为 IServiceProvider // This method gets called by the runtime. Use this method to add services to the container.public IServiceProvider ConfigureServices(IServiceCollection services){ //使用Autofac實現IOCvar containerBuilder = new ContainerBuilder();//模塊化注入containerBuilder.RegisterModule<HelpTool.AutofacModuleRegister>();containerBuilder.Populate(services);var container = containerBuilder.Build();return new AutofacServiceProvider(container);}}
}
using Autofac;
using System.Linq;
using System.Reflection;namespace HelpTool
{public class AutofacModuleRegister : Autofac.Module{protected override void Load(ContainerBuilder builder){ //動態註入服務builder.RegisterAssemblyTypes(Assembly.Load("IServices"), Assembly.Load("Services")).Where(t => t.Name.EndsWith("Service"))//注入cs文件以Service结尾的.AsImplementedInterfaces(); }}
}

方法调用

https://localhost:44372/api/Talentpool/TestMethod?test=111
会失败,因为_iTalentpoolService是个null//需要 動態註入服務 ==> 会用到Autofac组件 ===》 Startup.cs里写
builder.RegisterAssemblyTypes(Assembly.Load("IServices"), Assembly.Load("Services")).Where(t => t.Name.EndsWith("Service")).AsImplementedInterfaces();

继承

// 在类上这样写,可以指定方法调用的格式,好像是的吧
[Route("api/[controller]/[action]")]
  • 这样的话,大概的框架就是这样了,但效果是不是会快,我就没实践过了
  • 还有,之所以目录Services和Iservices是有用处的,为了動態註入服務,后面有时间就写。
  • 其实就是想为构造函数传递值,会用到Autofac组件。

这篇关于C# .NET Core API Controller以及辅助专案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/388420

相关文章

C#读写文本文件的多种方式详解

《C#读写文本文件的多种方式详解》这篇文章主要为大家详细介绍了C#中各种常用的文件读写方式,包括文本文件,二进制文件、CSV文件、JSON文件等,有需要的小伙伴可以参考一下... 目录一、文本文件读写1. 使用 File 类的静态方法2. 使用 StreamReader 和 StreamWriter二、二进

C#中Guid类使用小结

《C#中Guid类使用小结》本文主要介绍了C#中Guid类用于生成和操作128位的唯一标识符,用于数据库主键及分布式系统,支持通过NewGuid、Parse等方法生成,感兴趣的可以了解一下... 目录前言一、什么是 Guid二、生成 Guid1. 使用 Guid.NewGuid() 方法2. 从字符串创建

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin

解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题

《解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题》:本文主要介绍解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4... 目录未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘打开pom.XM

javax.net.ssl.SSLHandshakeException:异常原因及解决方案

《javax.net.ssl.SSLHandshakeException:异常原因及解决方案》javax.net.ssl.SSLHandshakeException是一个SSL握手异常,通常在建立SS... 目录报错原因在程序中绕过服务器的安全验证注意点最后多说一句报错原因一般出现这种问题是因为目标服务器

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

C#如何去掉文件夹或文件名非法字符

《C#如何去掉文件夹或文件名非法字符》:本文主要介绍C#如何去掉文件夹或文件名非法字符的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#去掉文件夹或文件名非法字符net类库提供了非法字符的数组这里还有个小窍门总结C#去掉文件夹或文件名非法字符实现有输入字

C#之List集合去重复对象的实现方法

《C#之List集合去重复对象的实现方法》:本文主要介绍C#之List集合去重复对象的实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C# List集合去重复对象方法1、测试数据2、测试数据3、知识点补充总结C# List集合去重复对象方法1、测试数据

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.