如何在 MVC Core 和 AutoFac 中使用属性注入

2024-04-17

我可以在 MVC Core 中轻松使用构造函数参数注入。但不支持属性注入。我尝试使用 AutoFac 但也失败了。
那么如何在MVC Core中使用属性注入。
这是 AutoFac 的代码

services.AddMvc();
ContainerBuilder builder = new ContainerBuilder();
builder.RegisterType<Test2>().As<ITest>();
builder.RegisterType<HomeController>().PropertiesAutowired();
builder.Populate(services);
var container = builder.Build();
//The following code works
HomeController test2 = container.Resolve<HomeController>();
return new AutofacServiceProvider(container); 

在 dotnet core 中,您需要进行以下更改才能使 Autofac 工作: 添加公共 AutofacIContainer在你的申请中Startup.cs

public IContainer ApplicationContainer { get; private set; }

Change ConfigureServices in Startup.cs回来IServiceProvider,完成所有注册,使用以下命令填充容器中的框架服务builder.Populat(services);。请注意,您不需要这样做builder.RegisterType<HomeController>().PropertiesAutowired();

public IServiceProvider ConfigureServices(IServiceCollection services)
{
    builder.Populate(services);
    ApplicationContainer = container;
    return new AutofacServiceProvider(ApplicationContainer);
}

您还需要确保在停止的应用程序上处置容器,方法是在您的应用程序中执行此操作Configure method.

public void Configure(IApplicationBuilder app, IApplicationLifetime appLifetime)
{
    app.UseMvc();           
    appLifetime.ApplicationStopped.Register(() => ApplicationContainer.Dispose());
}

执行此操作后 - 您的控制器应该自动获取自动连接的属性。

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

如何在 MVC Core 和 AutoFac 中使用属性注入 的相关文章

  • 为什么使用abs()或fabs()而不是条件否定?

    在 C C 中 为什么要使用abs or fabs 不使用以下代码即可查找变量的绝对值 int absoluteValue value lt 0 value value 这与较低级别的指令较少有关吗 您提出的 有条件的abs 并不等于std
  • Tensorflow 中的自定义资源

    由于某些原因 我需要为 Tensorflow 实现自定义资源 我试图从查找表实现中获得灵感 如果我理解得好的话 我需要实现3个TF操作 创建我的资源 资源的初始化 例如 在查找表的情况下填充哈希表 执行查找 查找 查询步骤 为了促进实施 我
  • Mono 无法保存用户设置

    我在 Mono Ubuntu 上保存用户设置时遇到问题 这是代码示例 private void Form1 Load object sender EventArgs e string savedText Properties Setting
  • 在 C++ 中分割大文件

    我正在尝试编写一个程序 该程序接受一个大文件 任何类型 并将其分成许多较小的 块 我想我已经有了基本的想法 但由于某种原因我无法创建超过 12 kb 的块大小 我知道谷歌等上有一些解决方案 但我更感兴趣的是了解这个限制的根源是什么 然后实际
  • 在 OpenCL 中将函数作为参数传递

    是否可以在 OpenCL 1 2 中将函数指针传递给内核 我知道可以用C实现 但不知道如何在OpenCL的C中实现 编辑 我想做这篇文章中描述的同样的事情 在 C 中如何将函数作为参数传递 https stackoverflow com q
  • 处理 fanart.tv Web 服务响应 JSON 和 C#

    我正在尝试使用 fanart tv Webservice API 但有几个问题 我正在使用 Json Net Newtonsoft Json 并通过其他 Web 服务将 JSON 响应直接反序列化为 C 对象 这里的问题是元素名称正在更改
  • 有什么工具可以说明每种方法运行需要多长时间?

    我的程序的某些部分速度很慢 我想知道是否有我可以使用的工具 例如它可以告诉我可以运行 methodA 花了 100ms 等等 或者类似的有用信息 如果您使用的是 Visual Studio Team System 性能工具 中有一个内置分析
  • 在 Xcode4 中使用 Boost

    有人设置 C Xcode4 项目来使用 Boost 吗 对于一个简单的 C 控制台应用程序 我需要在 Xcode 中设置哪些设置 Thanks 用这个来管理它 和这个
  • C++派生模板类继承自模板基类,无法调用基类构造函数[重复]

    这个问题在这里已经有答案了 我试图从基类 模板 继承 派生类也是模板 它们具有相同的类型 T 我收到编译错误 非法成员初始化 Base 不是基类或成员 为什么 如何调用基类构造函数 include
  • 单元测试失败,异常代码为 c0000005

    我正在尝试使用本机单元测试项目在 Visual Studios 2012 中创建单元测试 这是我的测试 TEST METHOD CalculationsRoundTests int result Calculations Round 1 0
  • 在 C 中复制两个相邻字节的最快方法是什么?

    好吧 让我们从最明显的解决方案开始 memcpy Ptr const char a b 2 调用库函数的开销相当大 编译器有时不会优化它 我不会依赖编译器优化 但即使 GCC 很聪明 如果我将程序移植到带有垃圾编译器的更奇特的平台上 我也不
  • 通过等待任务或访问其 Exception 属性都没有观察到任务的异常

    这些是我的任务 我应该如何修改它们以防止出现此错误 我检查了其他类似的线程 但我正在使用等待并继续 那么这个错误是怎么发生的呢 通过等待任务或访问其 Exception 属性都没有观察到任务的异常 结果 未观察到的异常被终结器线程重新抛出
  • 是否有一个 C++ 库可以从 PDF 文件中提取文本,例如 PDFBox for Java? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 去年 我使用 PDFBox 在 Java 中创建了一个应用程序来获取某些 PDF 文件中的原始文本 现在
  • gdb查找行号的内存地址

    假设我已将 gdb 附加到一个进程 并且在其内存布局中有一个文件和行号 我想要其内存地址 如何获取文件x中第n行的内存地址 这是在 Linux x86 上 gdb info line test c 56 Line 56 of test c
  • 无法使用 Ninject 将依赖项注入到从 Angular 服务调用的 ASP.NET Web API 控制器中

    我将 Ninject 与 ASP NET MVC 4 一起使用 我正在使用存储库 并希望进行构造函数注入以将存储库传递给其中一个控制器 这是实现 StatTracker 接口的上下文对象 EntityFramework public cla
  • 运行代码首先迁移更新数据库时出错

    我在迁移到数据库时遇到问题 并且似乎找不到我遇到的错误的答案 System MissingMethodException Method not found System Data Entity Migrations Builders Tab
  • 如何查明CONFIG_FANOTIFY_ACCESS_PERMISSIONS是否启用?

    我想利用fanotify 7 http man7 org linux man pages man7 fanotify 7 html我遇到的问题是在某些内核上CONFIG FANOTIFY ACCESS PERMISSIONS不起作用 虽然C
  • 热重载时调用方法

    我正在使用 Visual Studio 2022 和 C 制作游戏 我想知道当您热重新加载应用程序 当它正在运行时 时是否可以触发一些代码 我基本上有 2 个名为 UnloadLevel 和 LoadLevel 的方法 我想在热重载时执行它
  • boost::program_options:带有固定和可变标记的参数?

    是否可以在 boost program options 中使用此类参数 program p1 123 p2 234 p3 345 p12 678 即 是否可以使用第一个标记指定参数名称 例如 p 后跟一个数字 是动态的吗 我想避免这种情况
  • 如何使用 std::array 模拟 C 数组初始化“int arr[] = { e1, e2, e3, ... }”行为?

    注意 这个问题是关于不必指定元素数量并且仍然允许直接初始化嵌套类型 这个问题 https stackoverflow com questions 6111565 now that we have stdarray what uses are

随机推荐

  • java android 取消静音按钮的问题

    我正在创建一个简单的点击计数器 Android 应用程序 单击按钮时会播放声音 并且在离开计数屏幕然后返回时也会保存计数 我遇到了静音按钮的问题 当我单击它时 它会静音整个应用程序 而不仅仅是特定的 GUI 屏幕 活动 第一个问题是静音按钮
  • 如何在 Spark/PySpark 中对数据框中包含空值的两列求和? [复制]

    这个问题在这里已经有答案了 我有以下格式的数据框 Col1 cnt Test1 cnt Test2 Stud1 null 2 Stud2 3 4 Stud3 1 null 我想通过聚合 cnt Test1 和 cnt Test2 来创建一个
  • 500 内部服务器错误,适用于 php 文件而不是 html [重复]

    这个问题在这里已经有答案了 我的网站只有 4 5 个静态页面 索引 html 索引 php两者都在那里 index html 工作正常 如果我更改为index php 它会给出500 Internal Server Error 我不知道我的
  • Jekyll 的本地邮政资产

    我想知道其他人在使用 Jekyll 时如何组织个人帖子的资源 例如 如果帖子有图像 您是否只需将其转储到共享图像文件夹中 我真的不喜欢这样做的想法 这意味着图像与帖子完全分离 而我认为它们应该配对 我编写了一个插件 让我可以轻松地组织子目录
  • StringBuilder 是否比 String 连接使用更多内存?

    我知道在 C 中使用 StringBuilder 具有明显的性能优势 但是内存差异如何 StringBuilder 使用更多内存吗 顺便说一句 字符串生成器本质上做了什么不同的事情 使其速度如此之快 简短回答 StringBuilder适用
  • c 和 c++ 中将大小数组作为函数参数的目的是什么?

    考虑以下函数 void func1 int unsized array void func2 int sized array 10 void func3 int pointer 根据结果 std cout lt lt std is same
  • 静态方法与非静态方法

    下面是静态方法和非静态方法的php类代码示例 示例1 class A None Static method function foo if isset this echo this is defined echo get class thi
  • ASP.NET GridView:如何编辑和删除数据记录

    嗨 我已经使用 gridview 创建了一个表 有没有办法实现编辑和删除 我以前用PHP做过 我想使用的方法是在表中再创建两列 每行上都有编辑和删除按钮 然后 当单击按钮时 它会通过 URL 传递 id 并能够编辑或删除 不太确定如何在 A
  • 如何使用 Multer 中间件上传图像数组

    我正在尝试使用 Multer 上传一组图像 在客户端 我有一个名为图片的 FormData 图片数组 来自react native image picker const pictures setPictures useState const
  • 将图像添加到 html 块中

    我在 Blocks 内容中添加了一些 html 代码并启用了完整 HTML 过滤器 我对图像使用了相对路径 例如 sites all themes zen zen image png 我想这是不正确的 因为我需要根据我在主页或 node i
  • 使用 Json.NET 将 JSON 转换为数据集

    希望有人可以伸出援手 我正在尝试使用下面的示例将 JSON 转换为数据集 但遇到了问题 我已经验证 JSON 是正确的 使用了 Kent 建议的方法 感谢您的时间和帮助 以下是我的 JSON jsonData item1 one item2
  • Xcode 7 在创建新文件时崩溃

    我有 El Capitan GM 并且我已将 Xcode 更新为 Xcode 7 GM 现在我无法创建新类 Xcode 崩溃并显示消息 UNCAUGHT EXCEPTION NSInvalidArgumentException NSOpen
  • 在nifi中将JSON转换为CSV

    我想在 nifi 中将 JSON 文件转换为 CSV 我们可以用 Python 和其他编程语言来实现这一点 并且有多篇文章介绍它 我有多个 JSON 文件 每个文件都有不同的架构 一个特定文件只有一个架构 我可以看到有一些模板可以将 CSV
  • 项目“ ”的目标位置已存在,无法移动项目

    当我尝试与 git 存储库共享我的项目时 出现这样的异常 项目的目标位置 已存在 无法移动项目 写一个答案是因为我尝试了许多类似问题中建议的许多选项 但没有一个起作用 然后我按照以下有效步骤手动完成了此操作 并且这些步骤适用于任何 Ecli
  • 使用正则表达式查找有效的 IP 地址

    我有以下字符串 text 10 0 0 1 1 but 127 0 0 256 1 1 1 1 我想返回有效的IP地址 所以它应该只返回1 1 1 1自从这里256高于255并且第一个IP编号过多 到目前为止 我有以下内容 但它不适用于0
  • 抽象与抽象类

    根据http www cs cornell edu courses cs211 2006sp Lectures L08 abstraction 08 abstraction html http www cs cornell edu cour
  • 为什么 TableAttribute 位于实体框架 Dll 中?

    Table 属性 可用于将 POCO 类映射到正确的数据库名称 架构 位于 EntityFramework dll 中是否有充分的理由 这是否会阻止您创建一个仅包含您的实体而不依赖于特定数据访问技术的域项目 例如 如果我使用此属性 我不相信
  • CLGeocoder 返回其他国家/地区的位置

    我有以下代码 CLGeocoder geo CLGeocoder alloc init CLRegion region CLRegion alloc initCircularRegionWithCenter CLLocationCoordi
  • 在Sandbox中使用Cocoa NSSavePanel导致断言失败

    我正在尝试使用 NSSavePanel 并将这一行添加到我的代码中 let test NSSavePanel 每次调用此代码时都会出现此错误 我不太确定这里发生了什么 因为我只是创建一个新对象 任何帮助表示赞赏 谢谢 Assertion f
  • 如何在 MVC Core 和 AutoFac 中使用属性注入

    我可以在 MVC Core 中轻松使用构造函数参数注入 但不支持属性注入 我尝试使用 AutoFac 但也失败了 那么如何在MVC Core中使用属性注入 这是 AutoFac 的代码 services AddMvc ContainerBu