【发布时间】:2017-11-15 17:56:44
【问题描述】:
给定以下 ASP.NET Core 控制器:
public class MyController : Controller {
public MyController(IDependency dependency) { this.dependency = dependency; }
}
public interface IDependency;
public class DependencyImplementation : IDependency {
public DependencyImplementation(Controller controller) { ... }
}
我希望MyController 注入一个DependencyImplementation 的新实例,并使用它被传递到的控制器构造。理想情况下使用 Ninject。
非 IoC 版本是:
public class MyController : Controller {
public MyController() { this.dependency = new DependencyImplementation(this); }
}
【问题讨论】:
-
您的代码会导致依赖循环。依赖循环是不好的,通常应该避免。所以请解释为什么您需要将
Controller注入到依赖项中。最好使用一些代码。 -
我认为
Dependency Injection书为此类情况提供了解决方案,但使用了thishack。
标签: c# asp.net-core .net-core ninject