Asp.Net Core入门之自定义服务注册

.NET Core 6.0 注册服务,并创建对象. Scoped声明周期 使用 .NET Core 6.0进行依赖注入 阅读详情

具体我们一起看下面的例子:

首先,我们创建一个需要实现查询功能的服务接口ITest

public interface ITest
{
Task Get();
}
然后,我们创建功能类Test实现这个接口

复制代码
1 public class Test : ITest
2 {
3 private readonly ILogger logger;
4 public Test(ILogger _logger)
5 {
6 logger = _logger;
7 }
8 public Task Get()
9 {
10 logger.LogInformation(“自定义服务查询”);
11 return Task.FromResult(“Hello World”);
12 }
13 }
复制代码
最后,我们需要我们自己的服务注册到容器中。

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddScoped<ITest, Test>();
    }

以上我们便简单完成了自定义服务的注册。

随后我这里创建了一个Controller用以使用该服务。

复制代码
1 [Route(“api/[controller]”)]
2 [ApiController]
3 public class ValuesController : ControllerBase
4 {
5 //声明服务
6 private readonly ITest service;
7
8 ///
9 /// 通过构造函数的方式注入自定义服务类
10 ///
11 ///
12 public ValuesController(ITest _service)
13 {
14 service = _service;
15 }
16
17 ///
18 /// 调用服务中实现的Get方法
19 ///
20 ///
21 [HttpGet]
22 public Task Get()
23 {
24 return service.Get();
25 }
26 }
复制代码
ASP.Net Core框架默认支持我们以构造函数的方式注入我们的服务以使用。

我想写到这里,大家也会有疑问,如果我们有很多service,这样一个个注册写起来代码很低效,这里我们简单给大家介绍一种批量注册的方式:

这里我们创建了一个批量注册服务派生类:

复制代码
1 public static class ServiceExtensions
2 {
3 ///
4 /// 批量注册程序集下的服务类
5 ///
6 ///
7 public static IServiceCollection AddBatchServices(this IServiceCollection services)
8 {
9 //根据指定程序集名称获取待注册服务
10 var batchServices = GetConfigureClass(“WebApiApplication”);
11 foreach (var type in batchServices)
12 {
13 type.Value.ToList().ForEach(i =>
14 {
15 //注册服务类
16 services.AddScoped(i, type.Key);
17 });
18 }
19 return services;
20 }
21
22 ///
23 /// 根据程序集名称获取自定义服务
24 ///
25 ///
26 ///
27 public static Dictionary<Type, Type[]> GetConfigureClass(string assembly)
28 {
29 Dictionary<Type, Type[]> dic = new Dictionary<Type, Type[]>();
30 if (!string.IsNullOrEmpty(assembly))
31 {
32 //获取程序集对应的类型
33 Assembly dll = Assembly.LoadFrom(assembly);
34 List lstType = dll.GetTypes().ToList();
35 lstType.ForEach(x =>
36 {
37 //筛选满足条件的服务类
38 if (x.IsClass && x.GetInterfaces().Length > 0)
39 {
40 dic.Add(x, x.GetInterfaces());
41 }
42 });
43 }
44 return dic;
45 }
46 }
复制代码
然后我们ConfigureServices方法中注册:

    public void ConfigureServices(IServiceCollection services)
    {
        //批量注册
        services.AddBatchServices();
    }
    龙华大道1号http://www.kinghill.cn/LongHuaDaDao1Hao/index.html
ASP.NET CORE 2.0】在CentOS上部署ASP.NET CORE 2.0程序【超详细】 突然来的需求,让以前ASP.NET写的系统要部署到Linux上,所以研究了一下。1. 安装CentOS网上一搜一大把,我是在虚拟机上安装的。可以参考2. 安装.NET CORE SDK for CentOS 72.1 添加.NET相关为了安装.NET,需要注册微软签名密钥和添加微软相关的支持。这个操作每台机器只能做一次。 打开命令行,输出以下命令:sudo rpm --import https:/ 阅读详情

相关推荐

ADK 第一篇 Google Agent Development Kit 简介

是一个灵活且模块化的框架,专为开发和部署AI智能体而设计。虽然ADK针对Gemini和Google生态系统进行了优化,但它与模型无关、与部署环境无关,并兼容其他框架。ADK的核心理念是让智能体开发更接近传统软件开发模式,从而帮助开发者更轻松地构建、部署和编排智能体架构——无论是处理简单任务,还是管理复杂工作流。:利用预置工具、自定义函数、OpenAPI规范或集成现有工具,赋予智能体多样化能力,实现与谷歌生态系统的深度整合。

2501_90353350的博客 3004

.NET Core 服务注册步骤总结

总结一下 .NET Core 服务注册的步骤

yangshuquan的专栏 1683

告别命令行!用这个开源的Web版Kettle工具,5分钟搞定数据集成任务编排

本文介绍了一款开源的Web版Kettle工具,通过直观的拖拽界面大幅提升数据集成效率,告别复杂的命令行操作。该工具基于Kettle核心引擎,支持跨平台协作、轻量化访问和降低学习曲线,特别适合业务分析师快速上手。实测显示,使用该工具后任务配置错误率下降62%,协作效率提升40%。

weixin_30267785的博客 412

asp.net core 自定义中间件和service

首先新建项目看下main方法: public static void Main(string[] args) { var host = new WebHostBuilder() .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()) .UseI...

dingti6779的博客 536

Asp .Net Core 系列: 集成 Consul 实现 服务注册与健康检查

官网:https://www.consul.io/Consul 是一款开源的服务发现和配置管理工具,它能够监控应用程序和服务之间的通信,并提供了一组 API 和 Web UI,用于管理服务配置服务发现:Consul 通过 DNS 或者 HTTP 接口使服务注册服务发现变得很容易,一些外部服务,例如 saas 提供的也可以一样注册。健康检查:健康检测使 Consul 可以快速的告警在集群中的操作。和服务发现的集成,可以防止服务转发到故障的服务上面。键/值存储:一个用来存储动态配置的系统。

程序人生 2023

ASP.NET CORE服务注册方法

首先是编辑接口 完了之后就是实现接口的方法 在之后就是在Startup类的ConfigureServices方法中注册,我目前的理解就是让某个接口绑定给某个控制器,然后该控制器就能使用这个接口里的方法了, 这个地方有用到拓展方法的概念,我当时也是现百度,现写的,可能写的不到位,这个有点像给系统的方法添加重载方法(有点区别但是感觉实现的效果有点类似), 在服务注册之后就能在每个控...

Free1314XiaoSuYu的博客 4047

Asp .netAsp core (第二篇)《Asp Core 的生命周期》

  前面一篇文章简单回顾了Asp .net的生命周期,也简单提到了Asp .netAsp Core 的区别,我们说Asp Core不在使用Asp.netRuntime,所以它也没有了web程序生命周期中一步步事件,更没有了HttpModule和HttpHandler,那么在全新的Asp Core程序中,一个请求会有怎样的生命周期呢?   学习一门技术或者框架没有什么是一个Hello...

djwm003158的博客 332

ASP.NET Core 入门教程 9、ASP.NET Core 中间件(Middleware)入门

一、前言 1、本教程主要内容 ASP.NET Core 中间件介绍 通过自定义 ASP.NET Core 中间件实现请求验签 2、本教程环境信息 软件/环境 说明 操作系统 Windows 10 SDK 2.1.401 ASP.NET Core 2.1.3 MySQL 8.0.x IDE Visual Studio Code 1.32.3 浏览器 Chrom...

ken的杂谈 3150

【C#】.Net Core基础入门到实例部署

Net Core 入门基础,项目实例代码,部署IIS

qwerty_funny的博客 4749

Asp.Net Core 托管服务

在中,托管服务()允许你在后台运行长时间运行的任务,例如定时任务、消息队列处理、数据清理等。托管服务是定时任务(如数据同步、缓存刷新)消息队列消费资源监控其他需要长时间运行的进程通过或,结合依赖注入和异步编程模型,可以轻松构建可靠的后台任务。

lei1083929965的博客 1110

ASP.NET Core依赖注入容器中的动态服务注册

介绍 在ASP.NET Core中,每当我们将服务作为依赖项注入时,都必须将此服务注册ASP.NET Core依赖项注入容器。但是,一个接一个地注册服务不仅繁琐且耗时,而且容易出错。因此,在这里,我们将讨论如何动态地一次注册所有服务。 让我们开始吧! 为了动态注册所有服务,我们将使用AspNetCore.ServiceRegistration.Dynamic库。这是一个很小但非常有...

寒冰屋的专栏 2355

ASP.NET Core MVC

MVC概述 asp.net core 中安装mvc services.AddControllersWithViews();//添加mvc控制器和视图服务 endpoints.MapControllerRoute(//终结点默认路由 依赖注入 配置服务将对象注入到容器 控制器构造时通过依赖注入从容器获取对象 控制器 视图 https://localhost:44369/Home/Details 默认路径下没有发现视图 视图发现 从控制器传递数据到视图 ...

随笔 4258

服务注册自治,降低 ASP.NET Core Web API 依赖注入的耦合度和复杂度

在软件的实际开发中,一个软件通常由多个项目组成,这些项目都会直接或者间接被主 ASP.NET Core 项目引用,如果能让各个项目负责各自的服务注册,就能够减小项目之间的耦合度。

yangshuquan的专栏 1181

ASP.NET Core获取已经在Startup.ConfigureServices.services中注册服务实例

需求:我们在服务注册的实例在Controller可以通过构造函数映射出来,那么如果不是在Controller中我们应该怎么取呢? // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureSe...

程序员养成计划 1万+

如何将ASP.NET Core Web API(.net8) 部署为 Windows 服务

ASP.NET Core Web API部署为Windows服务,能够确保服务在系统重启后自动启动,并且长期稳定运行。通过上述步骤,你可以轻松地将Web API部署为Windows服务,并创建相应的脚本以便自动化部署和管理。这种方法适用于生产环境中的服务部署,确保了服务的高可用性和稳定性。同时,利用ASP.NET Core的跨平台特性,你的应用也可以在Linux或容器中运行,具有更广泛的部署灵活性。

qq_30345409的博客 3377

ASP.NET Core MVC 练习项目

ASP.NET Core、MVC、EF Core、Code First、

weixin_51164103的博客 1301

ASP.NET Core依赖注册自动化实现

概要 在ASP.NET CORE开发项目过程中,我们在封装了用户的业务逻辑之后,要按照ASP.NET 自带的DI框架的要求,将我们封装好的业务逻辑类注册到ServiceCollection容器中,这样做避免了我们手工实例化对象,为开发带来了便利。 但是我们也应该看到,在带来便利的同时,我们也不得不手工维护注册的代码。对于大型项目,用户的业务逻辑可能非常复杂,需要封装大量的业务类。同样,在项目迭代周期内,也会产生大量新的业务需求,需要反复修改注册的代码。 解决方案 基于当前的问题,本文提出一种服务自动发现,自

weixin_43263355的博客 962

服务发现—Asp.Net Core 结合Consul实现服务发现

服务发现—Asp.netcore结合consul实现服务发现Asp.netcore通过api方式实现consul服务注册与发现Consul服务发现 服务注册与发现作为微服务基础设施中的一部分,应该是低代码侵入,只需要通过简单的配置就可开箱即用,普通业务开发人员无需关注的功能,不然的话,服务较多,服务实例较多的情况下,服务的管理将牵扯开发人员很大的精力。 consul的服务注册有两种方式,一种是通过clientagen结合配置文件进行主动注册,一种通过api的方式进行注册,个人倾向于api方式,可以

weixin_37648525的博客 3176

Asp.Net Core WebApi 身份验证、注册、用户管理

Asp.Net Core WebApi身份验证、注册、用户管理用户服务用户实体、用户模型及数据上下文应用程序设置文件在Startup.cs中配置身份验证参考文献 用了两天的时间研究了在Asp.Net WebApi 项目中如何实现注册、登录、身份验证功能。此项目使用JWT(Json Web Token)来进行身份验证。 用户服务 ASP.NET Core用户服务负责与用户身份验证,注册和管理相关的所...

VoldemortChi的博客 2万+

ASP.NET Core 中实现 Cookie 身份验证

如果您一直在使用 ASP.NET Core,那么您可能已经了解 ASP.NET Core Identity。ASP.NET Core Identity 是一个功能齐全的网站安全框架,它提供了许多特性,例如外部登录和 JSON Web Tokens (JWT) 支持。然而,有时您需要的是一种简单易用且能让您完全掌控数据存储和帐户管理等各个方面的解决方案。这时,ASP.NET Core 的 Cookie 身份验证就派上用场了。本文将介绍 Cookie 身份验证的概念以及如何配置它来保护您的网站。

csdn_aspnet的专栏,请点击博客主页右上角三个点中的私信联系 1万+
上一篇: javascript 面向对象学习(三)——this,bind、apply 和 call
下一篇: JavaScript动画实例:圆点的衍生
ting2909
博客等级 码龄7年 20粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值