dependency-injection - CaSTLe温莎属性(property)注入(inject)

标签 dependency-injection castle-windsor

我是 windsor 菜鸟,我在依赖注入(inject)工作时遇到了一些问题。我正在使用 asp.net 网络应用程序。

我做了以下事情

public interface IHandler{
    ...
}

public class Handler : IHandler{
    ...
}

然后我尝试在 global.asax application_start 中注册代码

container.Register(Component
    .For(typeof(IHandler))
    .ImplementedBy(typeof(Handler))
    .Named("handler"));

当我想使用 Handler 时,我会创建一个属性

public IHandler handler{get;set;}

但是当我尝试使用它时,它是空的?为什么?我错过了什么吗?

最好的问候

更新

我唯一要注册/解决的事情如下:

container.Register(Component
    .For(typeof(IHandler))
    .ImplementedBy(typeof(Handler))
    .Named("handler"));

和:

container.Resolve<IHandler>();

我是否需要做其他事情,运行此 att 应用程序启动是否有效?

更新 2

问题会不会因为我试图在 ascx 控件上进行依赖注入(inject)而出现?

最佳答案

  1. 确保具有 IHandler 属性的组件也在 Windsor 中注册(并解析)。

  2. 您说这是针对 ASP.NET 应用程序的。 Windsor 组件的默认生活方式是单例。您确定要这样共享此组件吗?您可能需要此组件的短暂或每个网络请求的生活方式。

关于dependency-injection - CaSTLe温莎属性(property)注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7888784/

相关文章:

c# - 覆盖为嵌套/传递依赖项注入(inject)的组件实现

inversion-of-control - CaSTLe Windsor 或 Spring.NET - 优缺点

c# - 具有依赖注入(inject)的单例

java - Jersey/HK2 - 通过带注释的注入(inject)将 HttpServletRequest 注入(inject) ContainerRequestFilter 内

ios - 当我需要从两个不同的 Web 服务获取 Controller 数据时,我应该如何使用 MVVM 和依赖注入(inject)?

c# - 在 Ninject 中注入(inject)接口(interface)数组

wcf - 我是否需要 svc 文件来为非 HTTP 服务设置 CaSTLe Wcf 设施

python - Python 中的依赖倒置

java - 如何在测试方法中使用@Autowired

caSTLe-windsor - 温莎城堡 : A better way to implement 2 levels of (nested) factories?