簡體   English   中英

如果我使用依賴注入,如何在 web API Controller 構造函數中傳遞多個接口參數?

[英]How to pass multiple interface parameters in a web API Controller contructor if I am using Dependency Injection?

我正在使用依賴注入來調用我的對象,那么有沒有一種更簡潔的方法可以在構造函數中添加更多參數,而不會像下面的情況一樣使構造函數簽名變長?

   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;
    }

正如其他人所說,您的 controller 責任太大。 我建議您將功能分解為服務/業務邏輯服務。

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;
    }
}

然后你可以將它注入你的 controller

public Controller(IUserService userService, ILoginService loginService) { ... }

如果它仍然太多,我建議也拆分你的 controller。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM