如何使用反射通过字符串名称调用API?

2024-01-11

如何通过字符串名称调用另一个AppService中的API?

示例:我在 MyAppService 中有一个 API,如下所示

public class MyAppService : MyAppServiceBase, IMyAppService
    {
        private readonly IRepository<MyEntity> _myEntityRepository;    
        public CommonLookupAppService(IRepository<MyEntity> myEntityRepository)
            {
                 _myEntityRepository = myEntityRepository;            
            }

        public async Task<MyOutput> MyMethod (MyInput input)
            {

            }
    }

如何保存MyMethod作为字符串存入数据库并在另一个应用程序服务中调用它?我有很多这样的方法,所以我不想使用switch case打电话给他们。我想将此方法程序集名称作为字符串保存到数据库中,并在需要时调用它。我应该怎么办?


您可以组合使用:

  • Type.GetType(string)
  • Type.GetMethod(string)
  • IIocResolver.ResolveAsDisposable(Type)——ABP
  • MethodInfo.Invoke(Object, Object[])
// var appServiceName = "MyAppService";
// var methodName = "MyMethod";
// var input = new object[] { new MyInput() };

var appServiceType = Type.GetType(appServiceName);
var method = appServiceType.GetMethod(methodName);

using (var appService = IocResolver.ResolveAsDisposable(appServiceType))
{
    var output = await (Task)method.Invoke(appService.Object, input);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用反射通过字符串名称调用API? 的相关文章

随机推荐

  • 如何制作一个简单的基于视图的 NSOutlineView?

    出于学习目的 我想将基于单元格的 NSOutlineView 转换为基于视图的 NSOutlineView 基本上我想要以下内容 我想要一个 图像和文本表格单元格视图 而不是普通的单元格 图像可以是库存 NSApplicationIcon
  • 在 ECMAScript 中检查空字符串时,为什么应该使用 string.length == 0 而不是 string == "" ?

    我当前项目中的大多数开发人员都使用一种 对我来说 奇怪的方式来检查 ECMAScript 中的空字符串 if theString length 0 string is empty 我通常会这样写 if theString string is
  • 如何屏蔽IE8及以下版本?

    我们刚刚完成 Web 应用程序的开发 我们想要阻止 Internet Explorer 8 及以下版本 实现这一目标的最佳方法是什么 我找到了一种阻止 IE6 的方法 但是教程 http css tricks com ie 6 blocke
  • 如何左对齐 pandas `to_string()` 中的列值?

    我想将 pandas 数据框保存到文件中to string 但想要左对齐列值 和to string justify left 只有列标签左对齐 例如与 pd DataFrame col1 123 1234 col2 1 444441234
  • WooCommerce:检查产品是否缺货且不允许缺货

    如何检查产品是否缺货 库存数量为 0 并且不允许延期交货 由于某种原因 以下代码不起作用 add action woocommerce before add to cart button show stock single function
  • 如何将元数据添加到 Firebase 身份验证

    我需要在使用 firebase 身份验证的 google 登录期间传递自定义值 device id 随后通过侦听身份验证事件触发器从云函数获取该值 然后将该值添加到 Firestore 据我所知 您可以将值作为 http 触发器的查询参数传
  • Microsoft Edge 中的像素化图像缩小尺寸

    我最近为我的网站制作了一个分辨率为 400x400 的徽标 在我测试过的任何其他浏览器中 它可以缩小到 40x40 但在 Edge 中表现得很奇怪 每次刷新页面时 它都会在瞬间正确呈现 然后在页面完成加载后变为丑陋的像素化外观 页面完全加载
  • 如何使用 matplotlib 自定义甘特图并在图表上显示指示当前时间的垂直线?

    这是我的 Python 代码 它基本上绘制了甘特图 import pandas as pd import random from datetime import datetime import matplotlib dates as mda
  • 使用 Swift 结构和 id 时,SwiftUI 让 ScrollViewReader 滚动

    我有几个简单的 Swift UI 屏幕 全部运行在一个结构中 该结构定义了小部件的视图 名称及其进入的顺序 我试图创建一个水平列表 其中每个按钮在按下时都会在滚动视图中居中 这就是我想做的 我遇到的问题是我无法让 ScrollViewRea
  • Mac 上的 Podman 在运行 podman machine init 时抛出错误

    使用brew安装了podman brew install podman 尝试使用启动VMpodman machine init但收到以下错误 Extracting compressed file Error cannot overwrite
  • Liferay 日志记录级别

    有没有办法设置Liferay的global日志记录级别 我知道它是服务器管理中的控制台 但我想将全局级别设置为包级别 Thanks 由于 log4j 的配置方式 任何全局设置都可以被包级别设置覆盖 您可以删除任何配置单独的包 如果有 然后设
  • 从文件上传读取 url 时图像自动旋转(当它是大图像时)?

    下面这段代码 function readURL input if input files input files 0 var reader new FileReader reader onload function e img attr s
  • ASP.Net @符号

    我正在尝试遵循 ASP Net 的一些教程 但在我的一生中 我只是不明白 当符号位于变量之前时 它会执行此操作 我认为这只是会话变量或 request form 的快捷方式 但我在几个地方尝试过 但没有任何运气 当我将它随机放在某个地方时
  • IntelliJ、Java 格式化:强制空块位于一行

    是否可以告诉 IntelliJ 在格式化 Java 文件时将空块放在一行上 我想要这个 Override public void onClickPositive int tag Object payload 自动变成这样 Override
  • 添加/删除视觉/逻辑子项时收到通知

    我目前正在寻找一种在将孩子添加到视觉或逻辑孩子中时收到通知的方法 我知道 Visual OnVisualChildrenChanged 方法 但它不适用于我 因为我不能总是继承和重写此函数 我正在寻找一个活动 那么 有没有办法在添加子项时通
  • 删除/隐藏 Total_sales WooCommerce 自定义字段

    有没有办法去除total sales显示时自定义字段the meta对于一个产品 我可以将编辑器中的条目更改为其他名称和值 但它会神奇地再次出现并且不会被删除 我会为此使用 the meta key 过滤器 您有几种选择 当然您可以将它们组
  • 检查变量是否在 SASS 中定义

    正如标题所说 我正在尝试检查 SASS 中是否定义了变量 如果这有什么不同的话 我正在使用指南针 我发现 Ruby 的等价物是 defined foo 在黑暗中尝试了一下 但它只是给了我错误 defined expected was 我找到
  • 调整 tiff 大小并保持透明度和 c#

    我正在尝试调整 RGB 8 位 Tif 的大小并保持其在 c 中的透明度 我尝试过以下代码 using Image thumbnail new Bitmap 1500 1500 using Bitmap source new Bitmap
  • PHP 对象父/子递归

    我有一个父子面向对象关系 父对象有许多子对象 每个子对象都通过引用知道它的父对象 父母也可以是孩子 基本上它是一棵树 当我做一个var dump 在根对象上它说 父 gt 递归很多次 生成的描述会很长 我想知道我是否做错了什么 如果是 我对
  • 如何使用反射通过字符串名称调用API?

    如何通过字符串名称调用另一个AppService中的API 示例 我在 MyAppService 中有一个 API 如下所示 public class MyAppService MyAppServiceBase IMyAppService