首页 > 其他分享 >.NET CORE 通过依赖注入获取所有的的实现

.NET CORE 通过依赖注入获取所有的的实现

时间:2023-04-27 17:46:50浏览次数:33  
标签:CORE httpContextAccessor string paymentService IEnumerable 依赖 NET 12 public

  先定义一个接口

1 /// <summary> 2 /// 支付接口 3 /// </summary> 4 public interface IPaymentService 5 { 6 7 /// <summary> 8 /// 支付类型 9 /// </summary> 10 public string PayType { get; } //这个字段是用来筛选的,可以没有,属于业务字段,用于演示 11 12 }

 

 1 然后实现这个接口
 2 
 3     /// <summary>
 4     /// 微信支付实现
 5     /// </summary>
 6     public class WeChatPaymentService : IPaymentService
 7     { 12         private readonly IHttpContextAccessor _httpContextAccessor;
13 
14         public WeChatPaymentService(
15             IHttpContextAccessor httpContextAccessor )
20         {
21             _httpContextAccessor = httpContextAccessor; 26         }
27 
//赋值筛选字段 28 public string PayType => "wechat"; 29 }

 

 1 调用的时候使用 IEnumerable<>
 2 
 3 
 4   /// <summary>
 5     ///  测试获取接口所有注入实现
 6     /// </summary>
 7     [Route("api/[controller]")]
 8     [ApiController]
 9     public class PayTestController : ControllerBase
10     {
11         private IEnumerable<IPaymentService> _paymentService;
12 
13         public PayTestController(IEnumerable<IPaymentService> paymentService)
14         {
15             _paymentService = paymentService;
16         }  
17 
18         [HttpGet]
19         [Route("testPay")]
20         public async Task<IActionResult> testPay(string groupOrderNumber)
21         {
// 可以通过 FirstOrDefault 来进行筛选
// _paymentService 是所有实现的集合 22 var paymentService = _paymentService.FirstOrDefault(m => m.PayType == "wechat"); 24 return Ok(); 26 } 28 }

 

标签:CORE,httpContextAccessor,string,paymentService,IEnumerable,依赖,NET,12,public
From: https://www.cnblogs.com/manga/p/17359749.html

相关文章

  • Spring17_配置文件依赖注入4
    一、Bean的依赖注入入门1.创建UserService,UserService内部再调用UserDao的save()方法 2.将UserServiceImpl的创建权交给Spring3.从Spring容器中获得UserService进行操作执行UserController中的main方法,检查控制台输出:二、Bean的依赖......
  • c# asp.net 给一个图片打上水印,并且上传
    usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingSystem.Drawing;usingSystem.Drawing.Drawing......
  • asp.net 绑定数组数据到下拉列表,绑定数组到DropDownList,数据绑定
    前台代码:<asp:DropDownListID="ddlHPZL"runat="server"Width="130px"></asp:DropDownList>后台代码:#region绑定号牌号码string[]iniHPHM=newstring[];iniHPHM=["辽P,京A,京B,吉C,黑D,云E,蒙F,"]......
  • asp.net com,未能转换为类型库。类型库导出程序在处理,时遇到了错误。错误: 找不到元
    我把[assembly:ComVisible(true)]这个设置为true,就报下边的错误错误:程序集“D:\MyDocuments\VisualStudio2005\Projects\ClientOperation\active\bin\Debug\active.dll”未能转换为类型库。类型库导出程序在处理“active.myControl,active”时遇到......
  • asp.net c# webform 三层架构,bll,dal,model,dbcommon
    BLL:业务层相当于struts里的action,控制业务逻辑Model:数据实体,相当于struts里的bean,持久化数据的,有set,getDAL:数据层,用来拼凑sql语句DBCommon:与数据库打交道的层,用来CRUD连接数据库等这是我今天学三层了,做了个三层的登陆例子的总结经验,我对三层......
  • Cluster-GCN An Efficient Algorithm for Training Deep Convolution Networks
    目录概符号说明MotivationCluster-GCN代码ChiangW.,LiuX.,SiS.,LiY.,BengioS.andHsiehC.Cluster-GCN:Anefficientalgorithmfortrainingdeepandlargegraphconvolutionalnetworks.KDD,2019.概以往的GraphSage,FastGCN等方法,虽然能够实现mini-b......
  • Representation Learning for Attributed Multiplex Heterogeneous Network
    目录概符号说明各种定义HeterogeneousnetworkAttributednetworkAttributedmultiplexnetwork代码CenY.,ZouX.,ZhangJ.,YangH.,ZhouJ.andTangJ.Representationlearningforattributedmultiplexheterogeneousnetwork.KDD,2019.概本文在Attributed(结......
  • .NET使用一行命令轻松生成EF Core项目框架
    dotnetef是EntityFrameworkCore(EFCore)的一个命令行工具,用于管理EFCore应用程序的数据库和代码。除了提供管理数据库的命令之外,dotnetef还可以生成和管理实体和上下文代码。本文将介绍如何使用dotnetef动态生成代码。一、环境准备1、项目准备用vs2022新建一个.NET6的asp.......
  • 经典卷积神经网络结构:LeNet-5、AlexNet、VGG
    LeNet-5LeNet-5模型是专门为手写数字识别而设计的经典卷积神经网络。从上图可以看出,LeNet-5总共由输入层、卷积层、池化层、卷积层、池化层、全连接层、全连接层、输出层组成。1、输入层:一张32*32的灰度图像,只有一个颜色通道,深度为1。2、卷积层:将输入与6个高为5,宽为5,深度为1......
  • NET CORE 跨域问题
    在StartUp类里面配置如下代码即可解决跨域问题publicvoidConfigureServices(IServiceCollectionservices){services.AddCors(p=>p.AddPolicy("corsapp",builder=>{builder.WithOrigins("*").AllowAnyMethod().Allo......