[英].net 6 DI for base class
这是最小 API中的参数绑定(在 .NET 6 中引入)的工作原理,这是由框架(ASP.NET Core)处理的。 但这不是全新的想法,也不受匿名 labmdas 的约束 - 从第一个 ASP.NET 核心(参见适用于部分)版本开始,通过FromServicesAttribute
注入控制器动作。
至于解决基本 class 问题的参数注入问题 - 一种解决方法是创建 class 持有这些参数,在 DI 中注册并注入它。 像这样的东西:
public class BaseClassParameters
{
public BaseClassParameters (A a, B b, ...) {A = a; ...}
public A A { get; }
...
}
public class BaseClass
{
public BaseClass(BaseClassParameters p) { // copy from p}
}
public class ChildClass : BaseClass
{
public ChildClass(BaseClassParameters p): base(p) // can create ChildClassParameters : BaseClassParameters if needed or just add deps on this level
{
}
}
services.AddTransient<BaseClassParameters>(); // or use needed lifetime for class hierarchy here
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.