[英]How to pass multiple interface parameters in a web API Controller contructor if I am using Dependency Injection?
I'm using dependency Injection to call my objects, so is there a neater way of adding more parameters in the constructor without making the constuctor signature long just like my case below?我正在使用依赖注入来调用我的对象,那么有没有一种更简洁的方法可以在构造函数中添加更多参数,而不会像下面的情况一样使构造函数签名变长?
public ObjectController(IParam1 param1, IParam2 param2, IParam3 param3,
IParam4 param4,IParam5 param6,IParam7 param8)
{
_param1= param1;
_param2 = param2;
_param3= param3;
_param4= param4;
_param5= param5;
_param6= param6;
_param7= param7;
_param8= param8;
}
As the others have said, your controller has too much responsibility.正如其他人所说,您的 controller 责任太大。 I would recommend you break your functionality into Services/Business Logic services.
我建议您将功能分解为服务/业务逻辑服务。
public class UserService : IUserService {
IParam _param;
IParam2 _param2;
public UserService(IParam param, IParam2 param2) {
_param = param;
_param2 = param2;
}
}
public class LoginService : ILoginService {
IParam _param;
IParam2 _param2;
public UserService(IParam param, IParam2 param2) {
_param = param;
_param2 = param2;
}
}
Then you can inject it into your controller然后你可以将它注入你的 controller
public Controller(IUserService userService, ILoginService loginService) { ... }
And if it it still too much I would recommend spliting your controller as well.如果它仍然太多,我建议也拆分你的 controller。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.