【问题标题】:Are there any advantages of Property Injection over Constructor Injection? [duplicate]与构造函数注入相比,属性注入有什么优势吗? [复制]
【发布时间】:2012-05-15 07:30:48
【问题描述】:

可能重复:
Dependency injection through constructors or property setters?

如果 Property InjectionConstructor Injection 有什么优势,我很好奇:

  public class LoginController : Controller
  {
    [Inject]
    public ICookiesManager CookiesManager {get; set;}

    [Inject]
    public ISecurityManager SecurityManager {get; set;}

    public LoginController()
    {

    }
  }

  public class LoginController : Controller
  {
    private ICookiesManager _cookiesManager;
    private ISecurityManager _securityManager;

    public LoginController(ICookiesManager cookiesManager, ISecurityManager securityManager)
    {
      _securityManager = securityManager;
      _cookiesManager = cookiesManager;
    }
  }

【问题讨论】:

    标签: .net code-injection constructor-injection property-injection


    【解决方案1】:

    除了属性注入之外,这两种模式几乎没有什么实际区别,您可以用简单的属性集替换实现。使用构造函数注入,更明确(通常)你不希望任何人在运行时替换实现(因为这样做需要创建一个新的 LoginController。)

    【讨论】:

    • 是的,属性注入允许替换已创建对象中的逻辑,但这同时也是属性注入的一个缺点。我正在寻找优势:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-05
    • 1970-01-01
    • 1970-01-01
    • 2021-05-13
    相关资源
    最近更新 更多