首页 > 编程语言 >asp.net core 获取服务小计

asp.net core 获取服务小计

时间:2024-04-03 16:34:03浏览次数:20  
标签:core asp string service private IUserService net public logger

首先,定义服务:

 public interface IUserService
 {
     string GetName();
     void SetName(string name);
 }
public class UserService : IUserService
{
    private string sss;
    public string GetName()
    {
        if (string.IsNullOrEmpty(sss))
            return "UserName";
        else return sss;
    }
    public void SetName(string name)
    { 
        sss= name;
    }
}

其次,使用系统自动注入的方式:

 public class WeatherForecastController : ControllerBase
 {
     private static readonly string[] Summaries = new[]
     {
         "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
     };

     private IUserService _service;
     private readonly ILogger<WeatherForecastController> _logger;

     public WeatherForecastController(IUserService service, ILogger<WeatherForecastController> logger)
     {
         _service = service;
         _logger = logger;
     }

     [HttpGet]
     public IEnumerable<WeatherForecast> Get()
     {
         _service.SetName("222222");
         string m = _service.GetName();
         return Enumerable.Range(1, 5).Select(index => new WeatherForecast
         {
             Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
             TemperatureC = Random.Shared.Next(-20, 55),
             Summary = Summaries[Random.Shared.Next(Summaries.Length)]
         })
         .ToArray();
     }
 }

另外,使用手动获取service的方式:

public class WeaController : ControllerBase
{
    private static readonly string[] Summaries = new[]
    {
        "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
    };

    private IUserService _service;
    private readonly ILogger<WeatherForecastController> _logger;
    private readonly IServiceProvider _IServiceProvider;

    public WeaController(IUserService service, ILogger<WeatherForecastController> logger,IServiceProvider provider)
    {
        _service = service;
        _logger = logger;
        _IServiceProvider = provider;
    }

    [HttpGet]
    public string Get()
    {
        var z = _IServiceProvider.GetService<IUserService>();
        return z.GetName();

    }
}

在Program文件中进行注册:

builder.Services.AddScoped<IUserService, UserService>();

 

标签:core,asp,string,service,private,IUserService,net,public,logger
From: https://www.cnblogs.com/jizhong/p/18113000

相关文章

  • Kubernetes(k8s):如何进行 Kubernetes 集群健康检查?
    Kubernetes(k8s):如何进行Kubernetes集群健康检查?)一、节点健康检查1、使用kubectl查看节点状态2、查看节点详细信息3、检查节点资源使用情况2、Pod健康检查2.1、使用kubectl查看Pod状态2.2、查看特定Pod的详细信息,包括事件和条件3、服务健康检查3.1、使用ku......
  • Netty 实现 WebSocket 协议
    要使用Netty框架实现WebSocket服务端与客户端通信,你需要按照以下步骤进行:1、添加依赖        首先,在你的项目中引入Netty和其WebSocket支持库的依赖。如果你使用Maven或Gradle构建项目,可以在pom.xml或build.gradle文件中添加相应的依赖项。Maven:<dependency>......
  • feign.net 使用consul服务发现 配置
    所有依赖 <ProjectSdk="Microsoft.NET.Sdk.Web"><PropertyGroup><TargetFramework>net8.0</TargetFramework><Nullable>enable</Nullable><ImplicitUsings>enable</ImplicitUsings><In......
  • aspirate 工具
    dotnettoolaspiratehttps://www.nuget.org/packages/aspirate/0.1.40-preview作为全局工具安装dotnettoolinstall-gaspirate--prerelease注意:由于Aspirete还在开发中,它现在以预览版的形式发布,使用--prelease参数将使用最新的预览版加工清单跳转到你的Aspire......
  • .NET 代理模式(二) 动态代理-DynamicProxy
    前言我们都知道,在.NET中实现动态代理AOP有多种方案,也有很多框架支持,但大多框架的实现原理都是通过Emit配合Activator一起使用,从IL级别上实现动态代理。其实在.NET中有一个更为简单的方案可以实现动态代理,那就是DispatchProxy类。DispatchProxy类DispatchProxy类是.NETCor......
  • .NET Aspire 外部参数 (External parameters)
    .NETAspire外部参数(Externalparameters)https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/external-parameters环境提供应用运行的上下文。Parameter提供了在应用运行中请求外部值的功能。当应用本地运行的时候,Parameter可以为应用提供值,或者在应用部署的......
  • 基于donetcore/CAP实现分布式事务一致性
    官网:https://cap.dotnetcore.xyz相关介绍CAP是一个EventBus,同时也是一个在微服务或者SOA系统中解决分布式事务问题的一个框架。它有助于创建可扩展,可靠并且易于更改的微服务系统。在微软的 eShop 微服务示例项目中,推荐使用CAP作为生产环境可用的EventBus。什么是Event......
  • 入门 .NET Aspire: 使用 .NET 简化云原生应用开发
    入门.NETAspire:使用.NET简化云原生应用开发https://devblogs.microsoft.com/dotnet/introducing-dotnet-aspire-simplifying-cloud-native-development-with-dotnet-8/经历多个版本之后,我们一直在朝着我们正在进行的理想目标之一取得进展。使.NET成为全球构建云原生应用......
  • ENet——实时语义分割的深度神经网络架构与代码实现
    概述在移动设备上执行实时像素级分割任务具有重要意义。现有的基于分割的深度神经网络需要大量的浮点运算,并且通常需要较长时间才能投入使用。本文提出的ENet架构旨在减少潜在的计算负担。ENet在保持或提高分割精度的同时,相比现有的分割网络,速度提升了18倍,参数量减少了79倍......
  • 记录一次解决跨域问题解决过程。 strict-origin-when-cross-origin,net::ERR_FAILED, No
    事情是这样的,vue项目本地启动可以正常连接后端端口访问,部署到nginx上只有就无法访问,显示跨域问题  于是查看后端日志 啥都没有,觉得肯定是nginx的问题,怎么配置都没用, location/{ roothtml; indexindex.htmlindex.htm; add_header'Access-Control-Allow-O......