如何创建类的实例并注入服务?

2024-01-20

新的 aspnet 具有内置依赖注入:启动类实例接收服务、控制器、视图组件。有什么方法可以让我创建我的类的对象并使用 aspnet 功能传递服务吗?就像是:

WebApplicationClassesActivator.Create(typeof(MyClass))

where MyClass包含构造函数接收IHostingEnvironment例如,例如。

实际使用情况:

public class MyController : Controller
{
    private readonly IContext Context;
    public MyController(IContext context)
    {
        Context = context;
    }
    public IActionResult Index(string className)
    {            
        return View(WebApplicationClassesActivator.Create(Type.GetType(className)));
    }
}

Where classsName是类的名称,例如:

public class A
{
    public A(IContext context, IHostingEnvironment env)
    {
       ...
    }
}

集会Microsoft.Extensions.DependencyInjection.Abstractions包含静态类ActivatorUtilities其中有我需要的:

public static object CreateInstance(IServiceProvider provider, 
                                    Type instanceType, 
                                    params object[] parameters);

我可以创建实例并注入服务:

private readonly IServiceProvider Provider;

public HomeController(IServiceProvider provider)
{       
    Provider = provider;
}

public IActionResult Index()
{       
    var instance = ActivatorUtilities.CreateInstance(Provider, typeof(A));

    return View(instance);
}

public class A
{
    public A(IContext context)
    {

    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何创建类的实例并注入服务? 的相关文章

  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • free 和 malloc 在 C 中如何工作?

    我试图弄清楚如果我尝试 从中间 释放指针会发生什么 例如 看下面的代码 char ptr char malloc 10 sizeof char for char i 0 i lt 10 i ptr i i 10 ptr ptr ptr pt
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • 如何在 C++ 中标记字符串?

    Java有一个方便的分割方法 String str The quick brown fox String results str split 在 C 中是否有一种简单的方法可以做到这一点 The 增强分词器 http www boost o
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite

随机推荐

  • Mysql从管道导入

    我试图弄清楚如何将输出通过管道传输到 mysqlimport 中 但没有任何运气 我有一个巨大的文件 250 GB 我想在处理它后通过管道传输到 mysqlimport 我不想创建中间文件 表 我正在想象这样的事情 猫基因组 mpileup
  • C# 和 Visual Studio 2005 中的程序集之间的循环引用

    我正在努力标准化所有应用程序的分层 多层设计的单一方式 我正在尝试将我的所有应用程序设为 5 层 Code 用户界面 业务对象 或映射器 数据访问 关系型数据库管理系统 假设我正在开发一个具有用户登录 注销功能的应用程序 我正在 VS200
  • Pandas:根据特定列的值计数选择行

    从 panda 数据框中选择所有行的最简单方法是什么 谁的 sym 在整个表中恰好出现两次 例如 在下表中 我想选择 b e 中包含 sym 的所有行 因为这些符号的 value counts 等于 2 df pd DataFrame sy
  • 在 python 中执行 bash 脚本

    我创建了一个 Expect 脚本 执行时 它会通过 ssh 连接到服务器并执行一系列命令 伪代码如下所示 usr bin expect spawn ssh usr myip expect password send mypassword n
  • Web Workers 是沙箱不受信任的 JavaScript 代码的安全方法吗

    我想知道网络工作者是否可以安全地沙箱不受信任的 JavaScript 代码 举例来说 在绘图应用程序的上下文中 开发人员可以实现新的绘图工具 您可以将他们的代码放入 webworker 中 并且每当用户单击画布时 向他们发送一条包含光标位置
  • Python argparse:列出用法中的各个选择

    我有一个需要多个参数的程序 例如 breakfast py customer vikings eggs sausage bacon 其中 鸡蛋 香肠 和 培根 可以从特定选项列表中指定 现在我喜欢的输出breakfast py help看起
  • Azure Cosmos DB 多模型意味着什么?

    看着新的 Azure cosmos 数据库 我对它的多模型性质有点困惑 具体来说 是不是意味着 a 可以同时以多种方式查询相同的底层数据库 存储 以便我可以针对相同的集合使用 gremlin 图形查询和 mongodb api or b 这
  • 网页到印刷媒体——解决方案?

    我一直是 MediaWiki 和类似的基于 wiki 的文本编辑器的忠实粉丝 我喜欢快速添加文本 协作和共享的功能 然而 仍然需要格式良好的打印输出 像页眉和页脚 表达我想要它们表达的内容 分页符 页边距等 我见过的大多数解决方案都涉及到某
  • 在 SceneKit 中使用 Metal 着色器

    我想用一个Metal着色器将卡通 单元着色应用于场景中使用的材质 我试图实现的着色器是苹果自己的AAPLCelShader发现于金属着色器展示柜 https developer apple com library ios samplecod
  • 如何动态更改结构体的 json 标签?

    我有以下内容 package main import encoding json fmt os reflect type User struct ID int64 json id Name string json first want to
  • 我应该如何设置CLASSPATH?

    我之前这样做过 CLASSPATH home phenies jdk1 6 0 17 lib tools jar home phenies jdk1 6 0 17 lib dt jar 但今天一篇文章说我应该这样做 CLASSPATH ho
  • Pandas:将 group-key 作为 groupby.apply 中函数的参数

    我正在处理数据集df cities包含以下列 city name country name population language 我有以下函数可以根据国家 地区是否在某个列表中对表进行排序 special countries Morocc
  • 使用 ifelse 转换 R 中的列

    我有一个带有一列数字的数据框 在单独的列中 我想根据数字打印该数字是 小于 10 10 到 20 之间 还是 20 到 30 之间 到目前为止 我已经生成了这段代码 但到目前为止还不起作用 任何人都可以建议我如何修改它以使其起作用吗 cre
  • 添加 AUC 作为 keras 的损失函数

    有没有人有幸使用 Theano 为 Keras 编写自定义 AUC 损失函数 文档在这里 http keras io objectives http keras io objectives 示例代码在这里 https github com
  • 创建并写入具有“执行”权限的文件?

    我正在写一个bash带飞镖的脚本 下面的代码创建一个文件 但该文件没有 执行 权限 所以我无法通过执行 ex sh new File ex sh writeAsStringSync script str 也许 我需要设置FileStat h
  • 无法在未调用 Looper.prepare() 的线程内创建处理程序

    以下异常是什么意思 我该如何修复它 这是代码 Toast toast Toast makeText mContext Something Toast LENGTH SHORT 这是例外 java lang RuntimeException
  • 正则表达式更改特定字符串[重复]

    这个问题在这里已经有答案了 我正在从事一个翻译项目 当用户输入时我必须更改一些单词 例如 亚拉玛 gt 亚拉玛 亚拉马克 gt 亚拉马克 卡尔马迪 gt 卡马迪 萨拉马迪 gt 萨拉马迪 我的代码目前运行良好 但我有一个问题 如果我只输入
  • 从简单的 XML 文件到 XForms 的 XSL 转换并应用 CSS

    我正在将一些简单的 XML 文档转换为 XForms 并尝试向最终结果添加一些样式 我正在使用XSLT表格实现 我指向本地 CSS 文件 Twitter 的引导程序 所以 XML 文件看起来像这样
  • 为什么 new HashMap<> 在 JDK 1.6 中会产生错误,而在 1.7 中不会

    我注意到以下代码在使用 java 规范 1 7 的 eclipse 中编译时可以工作 但不能在 1 6 下工作 HashMap
  • 如何创建类的实例并注入服务?

    新的 aspnet 具有内置依赖注入 启动类实例接收服务 控制器 视图组件 有什么方法可以让我创建我的类的对象并使用 aspnet 功能传递服务吗 就像是 WebApplicationClassesActivator Create type