问题标签 [property-injection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
971 浏览

c# - 如何将属性注入到我不控制创建的类中

如何使用 autofac 将IServiceManager属性注入此类?这是一个自定义资源提供程序工厂类,当您调用HttpContext.GetGlobalResourceObject("", "MyResource")以获取资源字符串时会调用它。

0 投票
1 回答
177 浏览

c# - 如何将对象自动加载到页面属性中

首先,我知道这是可以做到的,但由于我没有参与设置或实施它,所以我没有看到它是如何完成的。

在以前的工作中,当我帮助支持 Web 应用程序(MVC 或 Web-App)时,我们有你常用的 EF 设计模式。但是当需要使用 EF 对象时,我们所要做的就是在 Page/Controller 中声明一个属性,然后我们就可以访问 Repository/Service。

只要在声明var prop1 = IOC.Resolve<Type>;后明确声明,我们就不必做任何事情,它将自动填充。我认为这是依赖注入,但没有看到任何关于如何使这成为可能的文章。

任何帮助都会非常有用。

编辑 2014-04-13

尝试像这样在 Global.asax 文件中进行属性注入

我试过做if....逻辑,但都Application_BeginRequest没有成功。

应用程序.cs

DomainInstaller.cs(几乎所有的安装程序类都是这样设置的):

所以我想我可能已经找到了我的问题,但我不确定如何实施解决方案,因为我的 Pages 和 MasterPages 都将包含需要从我的 EF 数据框架注入的属性。下面是一个 MVC 实现的示例,但是 Page 和 MasterPage 对象没有我可以像控制器一样使用的直接公共派生接口。

另一个项目,MVC 模式:

将此安装程序从 MVC 修改为 WebForms 有什么帮助吗?MasterPage 和 Page 都具有需要从 Windsor Container 注入的属性的意图。

0 投票
0 回答
190 浏览

structuremap - 具有外部依赖关系的 Attribute 类的结构映射属性注入对我不起作用

我是结构图的新手。当我将属性注入用于自定义验证类时,该属性始终为空。我想我错过了一些东西。在这方面的任何帮助将不胜感激。我不想使用 System.Web.Mvc.DependencyResolver.Current.GetService(); 在 AddressInfoValidator 中获取记录器的实例。我们使用 MVC 5、FluentValidation.Mvc(5.1.0.0) 和 Structure map(2.6.3.0) 来注入依赖项。我有一个简单的日志外观和一个 Myloger 类:

验证器的实现如下,我使用了属性注入,因为下面的类将用作属性:

地址模型是:

在 global.asax 中启动时从应用程序调用的结构映射注册表:

0 投票
1 回答
1150 浏览

c# - 通过 Castle Windsor 中的属性注入实现循环依赖

我需要温莎的循环依赖。这是为了递归方法而设计的。模块 A 调用模块 BF 并且模块 B 需要回调到 A 因为节点树。

无论如何,我知道我不能因此使用构造函数注入。所以我设置了带有属性注入的模块 A 以获得 IEnumerable<IModule>。

我已经注册了所有类型,但是在解析模块 A 时,Windsor 将属性设置为 Null(我让它抛出异常)。我尝试使用 DependsOn,但这似乎仅适用于构造函数参数。

如何让 Windsor 通过属性注入将我的模块 BF 集合解析为模块 A,这样我就可以获得所需的依赖循环?

这是顶层模块(Module A)和IModule;

和递归子模块:

我的注册:

正如我所说,我尝试了似乎不适用于属性的 DependsOn,以及无效的 PropertyRequire,我仍然通过了 null。

请注意,我无权访问 Container.Resolve 代码,因为我正在为第 3 方工具注册这些组件。

谢谢!

编辑

我的期望:

  1. Windsor 解析 CompositeModule 并使用默认 ctor 创建一个实例。命名它。

  2. 温莎去满足属性,这是一个可枚举的 IModules

  3. 它看到 6 个 IModule,不包括 CompositeModule,并尝试将它们实例化为一个集合

  4. 它看到 6 个模块之一 CheckChildrenModule 需要 CompositeModule 的命名实例。

  5. 它使用在步骤 1 中创建的 CompositeModule 的命名实例来满足对 CheckChildrenModule 的 ctor 依赖

  6. 现在它可以完成 IModules 的收集并将它们从步骤 2 传递到 CompositeModule 的 InnerModules 属性。

只是不知道如何让它发生。

0 投票
0 回答
166 浏览

asp.net-mvc - 属性注入导致 StackOverflowException

我是 AutoFac 的新手,我正在尝试使用我在 AutoFac 注册的实例自动注入我的属性。

导致异常的行:builder.RegisterType().PropertiesAutowired();

我想获得提供者的 ISocialAppUnitOfWork。

我不确定目前发生了什么,任何帮助将不胜感激。

0 投票
1 回答
833 浏览

c# - Autofac将上下文注入控制器和实体

我有一个基于 EF4.3 构建的 MVC 应用程序,并试图通过将 DbContext 注入实体而不是传递它来进行一些重构/清理。我已经在使用 Autofac 将上下文传递给我的控制器,效果很好。但是使用 AutowireProperties 在实体上设置 DbContext 属性不起作用(似乎从未设置该属性)。这是我的设置:

Database.Appointment 具有公共属性,例如:

简短的回答是我想继续在控制器上为每个 http 请求设置上下文,然后将相同的上下文设置为具有 DbContext 属性的 EF 实体。

0 投票
1 回答
136 浏览

property-injection - 温莎城堡:财产注入

我实现了一个派生自ExtendedMembershipProvider的CustomMembershipProviderIUserService是 CustomMembershipProvider 的依赖,它将用于验证给定的凭据。这将在 Web.Config 中进行配置;

无法通过构造函数注入IUserService实现,因为CustomMembershipProvider需要无参数构造函数。

于是想到了引入属性注入。我将 IUserService 作为 CustomMembershipProvider 的公共属性。

我只为此注册编写了一个单独的安装程序

这不起作用,并且在调用 ValidateUser 时UserService始终为 NULL。

我尝试了贡献者;

并在我引导容器的地方注册贡献者。

请让我知道如何注入 CustomMembershipProvider 的 IUserService属性

0 投票
3 回答
7917 浏览

c# - 如何使用 Autofac 解决属性注入?

我有一个 MVC Web 应用程序,它使用 Autofac 在控制器中注入服务。

问题:我正在尝试对服务进行属性注入,但它失败了(属性始终为空)。

的期望:我希望 Autofac 正确初始化属性(不为空)。

例子:

  • 我正在尝试将 AliasesService 作为 IAliasesService 注入控制器。
  • AliasesService 依赖于 MailService。
  • MailService 是 AliasesService 的属性。
  • AliasesService 已正确实例化并传递给 MyController。
  • MailService 未正确实例化并设置为 AliasesService 的属性

控制器:

全球.asax:

别名服务:

值得一提:

  • 如果我尝试为控制器进行属性注入,它会按预期工作
  • 构造函数注入有效,但我需要属性注入。

我尝试过的其他事情没有成功:

1

2

最小的例子:

替代解决方案:

对于 Autofac 工作的最小示例,但在控制器的上下文中,我仍然没有设法使其按预期工作,所以我放弃了使用它,因为我浪费了太多时间。我现在正在使用 Castle Windsor,它可以满足我的一切需求,感谢您的支持。

0 投票
2 回答
1250 浏览

asp.net-web-api2 - 具有自定义授权属性问题的 Asp.Net Web Api 和 Autofac(属性注入)

我正在使用 Autofac 注入我所有的项目依赖项,效果很好。现在我添加了一个自定义授权属性(我不需要像 OWIN 和身份这样的非常复杂的功能)。自定义授权属性依赖于数据层,因此我尝试将其作为属性注入进行注入。但是,该属性始终为 Null。代码如下:

注入 AuthorizationHelper 的代码:

属性在 FilterConfig 中注册为 filters.Add(new CustomAuthorizationFilterAttribute());

所有的接线工作,但 AuthorisationHelper 始终为空。

任何意见将不胜感激。

0 投票
0 回答
128 浏览

dependency-injection - 概念:Angular 1.* 的 Setter 依赖注入

前言——这更像是一个概念性的讨论,而不是“如何做”。如果有一种简单的实现方法,那么我当然会感谢有关如何实现的提示,但我真的想深入了解为什么/为什么不这样做是不可能的或一个好主意。欢迎任何和所有评论/建设性批评。

基于属性/设置器的依赖注入

新的 $injector API

简单的控制器示例

角土地的其他地方

为什么?

我喜欢 javaScript 的简单性。它是一种可塑性很强但功能强大的语言。但是,我不认为我是唯一一个来自另一种编程语言的开发人员,他们渴望 JavaScript 缺少某些功能。因此,我利用继承(我知道 OMG !!!)在我的应用程序开发中构建许多基类。具体来说,我所有的角度控制器都继承自关键基类(例如 baseViewController、basePopupController 等)。

如果我打算扩展到基础控制器类之外, Angular 对基于构造函数的DI 的强制使继承有点痛苦。构造函数参数必须传递给任何子类。我希望有一种方法可以允许不同类型的依赖注入。